我想知道如何在表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/

10-13 07:45
查看更多