【MySQL】INSERT INTO ... ON DUPLICATE KEY UPDATE 合并两张表

通过 INSERT INTO … ON DUPLICATE KEY UPDATE 语句来将一张表的数据合并到另一张表中,假设两个表具有相同的结构:

 -- 插入数据并在目标表中已存在时执行更新
INSERT INTO target_table (column1, column2, ...)
SELECT source_table.column1, source_table.column2, ...
FROM source_table
ON DUPLICATE KEY UPDATE
target_table.column1 = source_table.column1, target_table.column2 = source_table.column2, ...;

说明:
source_table : 是包含要合并数据的源表。
target_table : 是目标表,它可能已经包含一些数据。
column1, column2, … : 是要合并的列,这些列的名称和顺序应该在两个表中一致。

>> 确保目标表中的列具有唯一键或主键约束,以便可以根据唯一键值来确定是否执行更新。

如果目标表中已存在具有相同唯一键值的行,将执行更新操作以覆盖目标表中的数据。若条件不匹配任何现有行(也就是目标表中没有相同的唯一键值),那么将会执行插入操作,新的行将被插入到目标表中。

INSERT INTO … ON DUPLICATE KEY UPDATE 语句具有两种操作:

更新(Update):如果条件匹配(目标表中已存在具有相同唯一键值的行),则执行更新操作,将源表的值更新到目标表中。
插入(Insert):如果条件不匹配,将执行插入操作,将新行插入目标表。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值