SQL 查询并不总是插入缺失值
SQL Query not always inserting missing values
我正在编写一个 SQL 查询来从另一个 table 更新一个 table。如果在 table1
.
中找不到该记录,我的查询目标是将 table2
中的记录插入到 table1
中
当 table1
完全为空时,查询效果很好,但是当我删除几条记录并尝试 运行ning 我的查询时,它无法重新插入已删除的值,即使它们仍然存在在 table2
.
这是我的 python 代码和 SQL 查询
cursor.execute('INSERT INTO table1 (col1, col2, col3, col4) SELECT col1, col2, col3, col4 FROM table2 WHERE NOT EXISTS (SELECT col1, col2, col3, col4 FROM table1)')
当我从 table1
中删除 Access 中的一条记录并尝试重新 运行 脚本时它什么也没做,但是当我从 table1
中删除所有内容并重新 运行 脚本完美运行。
这就是 NOT EXISTS
的工作方式,假设 col1
是表中的主键
INSERT INTO table1 (col1, col2, col3, col4)
SELECT col1, col2, col3, col4
FROM table2 t2
WHERE NOT EXISTS (SELECT 1 FROM table1 t1 WHERE t1.col1 = t2.col1)
我正在编写一个 SQL 查询来从另一个 table 更新一个 table。如果在 table1
.
table2
中的记录插入到 table1
中
当 table1
完全为空时,查询效果很好,但是当我删除几条记录并尝试 运行ning 我的查询时,它无法重新插入已删除的值,即使它们仍然存在在 table2
.
这是我的 python 代码和 SQL 查询
cursor.execute('INSERT INTO table1 (col1, col2, col3, col4) SELECT col1, col2, col3, col4 FROM table2 WHERE NOT EXISTS (SELECT col1, col2, col3, col4 FROM table1)')
当我从 table1
中删除 Access 中的一条记录并尝试重新 运行 脚本时它什么也没做,但是当我从 table1
中删除所有内容并重新 运行 脚本完美运行。
这就是 NOT EXISTS
的工作方式,假设 col1
是表中的主键
INSERT INTO table1 (col1, col2, col3, col4)
SELECT col1, col2, col3, col4
FROM table2 t2
WHERE NOT EXISTS (SELECT 1 FROM table1 t1 WHERE t1.col1 = t2.col1)