【发布时间】:2021-06-09 06:17:37
【问题描述】:
我有一个 SQLite 数据库,其中的表包含以下类型的数据:
CREATE TABLE tableName
([A] int, [B] str, [C] str)
;
INSERT INTO tableName
([A], [B], [C])
VALUES
(1, AAA, AAA),
(2, AAA, BBB),
(3, ABC, DEF),
(4, BBB, AAA),
(5, CCC, DEF),
(6, DEF, EEE),
(7, DEF, DDD),
(8, DDD, BBB),
(9, EEE, AAA)
;
我需要做的是获取列 B 和 C,创建一个不重复的列表并自动递增唯一值的主键。它需要检查以确保条目不存在 - 所以第二个表将是:
1 - AAA
2 - BBB
3 - ABC
4 - DEF
5 - CCC
6 - EEE
7 - DDD
我觉得应该是这样的:
con = sqlite3.connect('path//DBv15.db')
cur = con.cursor()
cur.execute("INSERT INTO TableB(E) SELECT DISTINCT A.A A.B FROM TableA A;")
但我很确定那是错误的。它需要在添加新行之前扫描表中的重复项,我被卡住了。我正在使用 python 程序来加载和修改我的表。
【问题讨论】: