我想知道如何在表2的表1中插入新行。想法是通过比较两个表,如果在第二个表中找不到表1中的相同ID,则会在表1中插入新数据1。
这是两个表,也是我要执行的操作:
Tabla 1
ID-Name-Surname
1-Oriol-Molina
Tabla 2
ID-Name-Surname
1-Oriol-Molina
2-Ricard-Martin
结果将是这样的:
Tabla 1
ID-Name-Surname
1-Oriol-Molina
2-Ricard-Martin
Tabla 2
ID-Name-Surname
1-Oriol-Molina
2-Ricard-Martin
最佳答案
使用数据库强制执行数据完整性。也就是说,如果您不想在表中重复id
,则声明一个唯一的索引/约束:
create unique index unq_table1_id on table1(id);
然后,在MySQL中,您可以使用
on duplicate key update
:insert into table1 (id, name, surname)
select id, name, surname
from table2
on duplicate key update id = values(id);
最后一条语句是“ no-op”(无操作)-除了防止错误外,它什么也不做。
这种方法的优点在于,数据库将确保
id
对于将数据插入表中的任何语句都是唯一的,而不仅仅是此语句。关于mysql - 如何比较ID将表2中的新行插入表1中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57004553/