python - SQL - 使用临时表更新主表

标签 python sql sqlite sql-update

我有一个关于 SQL 的问题,特别是 SQLite3。我有两个表,我们将它们命名为 main_tabletemp_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/

相关文章:

mysql - 数据库SQL查询错误外键

python - sqlite3.操作错误: no such column:

python - SQLite 中的连接语句出现问题

python - TensorFlow中的参数 "state_is_tuple"是干什么用的?

python - 如何使用从登录 View 获得的 jwt token 进行身份验证

python - 修补在另一个函数中导​​入的函数

mysql - 如何将第三个条件放入 mysql 查询中

sql - 查询从具有 2 个 ID 列的表中获取名称

sql - QT4.7中使用sqlite的问题

javascript - 使用 Python、BeautifulSoup 进行动态数据 Web 抓取