insert ignore into,on duplicate key update,replace into-解决唯一键约束

398 阅读1分钟

原博链接

blog.csdn.net/ThinkWon/ar…

总结1

1、如果出现重复异常,希望捕获异常,则使用insert into

2、如果出现重复异常,希望保存旧纪录,忽略新纪录,则使用insert ignore into

3、如果出现重复异常,希望更新指定字段,则使用insert into … on duplicate key update

先插入记录,如果不成功,则删除原记录,但保留了除update语句后字段的值,然后把保留的值与需要更新的值合并,然后插入一条新记录。 这个操作会导致自增字段加1

4、如果出现重复异常,希望删除旧记录,插入新记录,则使用replace into

reaplce into先删除了id为1的记录,然后再插入记录

总结2

replace into 与 insert into on duplicate key update都是先尝试插入记录,如果不成功,则删除记录,replace into不保留原记录的值,而insert into on duplicate key update保留。然后插入一条新记录。