我有一个关于 SQL 的问题,特别是 SQLite3。我有两个表,我们将它们命名为 main_table
和 temp_table
。这些表基于相同的关系架构,因此它们具有相同的列但不同的行(值)。
现在我想做的是:
对于 main_table
的每一行,如果 temp_table
中存在具有相同 ID 的行,我想替换它。否则我想保留表中的旧行。
我正在考虑使用一些连接
,但它没有提供我想要的东西。
你能给我一些建议吗?
编辑:附加信息:
我想避免写入所有列,因为这些表包含数十个属性,并且由于我必须更新所有列,因此没有必要写出所有列。
最佳答案
如果表具有相同的结构,您可以简单地使用SELECT *
:
BEGIN;
DELETE FROM main_table
WHERE id IN (SELECT id
FROM temp_table);
INSERT INTO main_table
SELECT * FROM temp_table;
COMMIT;
(这还将在 temp_table
中添加以前在 main_table
中不存在的任何新行。)
关于python - SQL - 使用临时表更新主表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31748654/