python-3.x - SQLite 不能一次更新多个表
问题描述
UPDATE X, Y
SET X.3="Updated String", Y.3="Updated String"
WHERE X.1 = Y.1
AND X.2 = Y.2;
上面的查询在 MySQL 上运行良好。我在将其迁移到 SQLite 时遇到问题,因为 SQLite 不支持一次更新多个表(子查询可能有效,但我不知道该怎么做)。我正在尝试使用 python 的 sqlite3 模块运行此查询。
请将 X 和 Y 视为具有 1、2、3 列的表格。
任何人都可以帮助我吗?提前致谢
解决方案
SQLite 不支持多表更新。
只能使用 2 个单独的更新语句来完成:
UPDATE X
SET X.3 = 'Updated String'
WHERE EXISTS (SELECT 1 FROM Y WHERE X.1 = Y.1 AND X.2 = Y.2);
UPDATE Y
SET Y.3 = 'Updated String'
WHERE EXISTS (SELECT 1 FROM X WHERE X.1 = Y.1 AND X.2 = Y.2);
推荐阅读
- bash - 如何使用 FIND 命令处理文件名空间和字符
- python - Python:在数组中查找元素,如果没有找到,则执行某些操作
- vue.js - Vue js停止第二个事件
- jenkins - 詹金斯奴隶(服务),无法检测到量角器
- wpf - 如何从代码中的绑定对象获取值作为字符串(WPF)
- python - 无法通过 django 连接 docker mysql
- python - TensorFlow 和词嵌入 - TypeError: unhashable type: 'numpy.ndarray'
- mysql - 表锁和行锁的区别
- javascript - 对新项目使用 Angular 5
- windows - 子上下文菜单的“git bash here”在 Windows 根路径中打开