插入新紀錄,若存在則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);
將z2庫中z2t表的數據更新為z1庫中z1t表數據。
此同步若z2t表中不存在則插入一條一模一樣的數據(包括所有字段),若存在則只更新給出的字段(name和age)。
insert into z2.z2t
select * from z1.z1t
on duplicate key update
`name`=values(`name`),
`age`=values(`age`);