我有两个sqlite表
tab1(项目(文本),ID(整数主键))
tab2(项目(文本),Id(整数主键))
tab1已经有一些记录。我想从tab2复制不在tab1中的所有记录。
当我使用以下查询时:
“插入tab1中选择*,从tab2中选择*,不在其中的项目(从tab1中选择项目)”。
它将tab1中的所有项目替换为tab2中的相同PK。
我希望使用新的PK将tab2中的新项目添加到tab1中
谢谢
答案 0 :(得分:0)
You need to specify that you want only the column items
inserted in tab1
.
The other column id
, since it is INTEGER PRIMARY KEY
, it is also AUTOINCREMENT
, so no special action for it is needed.
INSERT INTO tab1 (items)
SELECT items
FROM tab2
WHERE items NOT IN (SELECT items FROM tab1)
or with NOT EXISTS
:
INSERT INTO tab1 (items)
SELECT items
FROM tab2 t2
WHERE NOT EXISTS (
SELECT 1 FROM tab1 WHERE items = t2.items
)