【发布时间】:2021-11-21 12:16:32
【问题描述】:
我在 python 中有以下代码来更新数据库,其中第一列是“id”整数主键自动增量唯一:
con = lite.connect('test_score.db')
with con:
cur = con.cursor()
cur.execute("INSERT INTO scores VALUES (NULL,?,?,?)", (first,last,score))
item = cur.fetchone()
on.commit()
cur.close()
con.close()
我得到包含以下数据的表格“分数”:
1,Adam,Smith,68
2,John,Snow,76
3,Jim,Green,88
两个不同的用户(userA 和 userB)将 test_score.db 和代码复制到他们的计算机上并单独使用。 我找回了两个 db test_score.db 但现在内容不同:
用户 A test_score.db:
1,Adam,Smith,68
2,John,Snow,76
3,Jim,Green,88
4,Jim,Green,91
5,Tom,Hanks,15
用户 A test_score.db:
1,Adam,Smith,68
2,John,Snow,76
3,Jim,Green,88
4,Chris,Prat,99
5,Tom,Hanks,09
6,Tom,Hanks,15
我正在尝试使用
insert into AuditRecords select * from toMerge.AuditRecords;
将两个 db 合并为一个,但由于第一列是唯一 id 而失败。两个数据库现在具有相同的 ID,但具有不同或相同的数据,并且合并失败。 我想在两个数据库中找到唯一的行(所有值都不同,忽略 id)并将结果合并到一个完整的数据库中。
结果应该是这样的:
1,Adam,Smith,68
2,John,Snow,76
3,Jim,Green,88
4,Jim,Green,91
5,Tom,Hanks,15
6,Chris,Prat,99
7,Tom,Hanks,09
我可以逐个提取每个值并进行比较,但我想避免它,因为将来我可能会有更长的行和更多的列。
对不起,如果问题很简单,我还在学习。我试图找到答案但失败了,如果它已经存在于其他地方,请指点我回答。非常感谢您的帮助。
【问题讨论】:
标签: python sql database sqlite merge