MySQL:insertプライマリ・キーが重複している場合update

4726 ワード

新しいレコードを挿入し、存在する場合updateにレコードがあります.replace intoは、存在する場合は元のレコードを削除して挿入し、他のフィールドは変更されます(新しく与えられたデータに従って、新しいレコードに該当するフィールドが提供されていない場合はデフォルト値に更新されます).insert into ...on duplicate key updateは、存在する場合は既存のフィールドが更新され、他のフィールドは変更されません.
replace into table (id,dr) values (1,'2'),(2,'3'),...(x,'y');

insert into table (id,dr1,dr2) values  (1,'2','a'),(2,'3','b'),...(x,'y','3') on duplicate key update dr1=values(dr1), dr2=values(dr2);

z 2ライブラリのz 2 tテーブルのデータをz 1ライブラリのz 1 tテーブルのデータに更新します.この同期は、z 2 tテーブルに存在しない場合は同じデータ(すべてのフィールドを含む)を挿入し、存在する場合は与えられたフィールド(nameとage)のみを更新します.
insert into z2.z2t
  select * from z1.z1t 
on duplicate key update 
`name`=values(`name`),
`age`=values(`age`);

転載先:https://www.cnblogs.com/xuejianbest/p/10285068.html