首页 > 解决方案 > 如何将表 2 中的新行插入到表 1 中比较 ID?

问题描述

我想知道如何在表 2 的表 1 中插入新行。想法是,通过比较两个表,如果在第二个表中您没有在表 1 中找到相同的 ID,则会在表中插入新数据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

标签: mysqlsql

解决方案


使用数据库来强制执行数据完整性。也就是说,如果您不想id在表中重复 s,则声明一个唯一索引/约束:

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);

最后的语句是无操作的——它除了防止错误之外什么都不做。

这种方法的优点是数据库将确保将数据插入表中的任何id语句都是唯一的,而不仅仅是这个。


推荐阅读