Java 从sqlite中的另一个表复制时,会替换表记录

Java 从sqlite中的另一个表复制时,会替换表记录,java,sqlite,Java,Sqlite,我有两个sqlite表 tab1项目文本,Id整数主键 tab2项目文本,Id整数主键 tab1已经有一些记录了。我希望复制tab2中不在tab1中的所有记录 当我使用以下查询时: 将不在表1中的项目插入表1,从表2中选择*从表1中选择项目 它用tab2中相同的主键替换tab1中的所有项目 我想将tab2中的新项目添加到具有新PK的tab1中 谢谢您需要指定只希望在tab1中插入列项目。 另一个列id,因为它是整数主键,它也是自动递增的,所以不需要对它执行特殊操作 INSERT INTO tab

我有两个sqlite表

tab1项目文本,Id整数主键

tab2项目文本,Id整数主键

tab1已经有一些记录了。我希望复制tab2中不在tab1中的所有记录

当我使用以下查询时:

将不在表1中的项目插入表1,从表2中选择*从表1中选择项目

它用tab2中相同的主键替换tab1中的所有项目

我想将tab2中的新项目添加到具有新PK的tab1中


谢谢

您需要指定只希望在tab1中插入列项目。 另一个列id,因为它是整数主键,它也是自动递增的,所以不需要对它执行特殊操作

INSERT INTO tab1 (items)
SELECT items
FROM tab2 
WHERE items NOT IN (SELECT items FROM tab1) 
或不存在:


如果你解决了问题,你可以考虑接受这个答案。
INSERT INTO tab1 (items)
SELECT items
FROM tab2 t2
WHERE NOT EXISTS (
  SELECT 1 FROM tab1 WHERE items = t2.items
)