Insert ignore,还是insert replace还是insert on duplicate key update区别
- insert into 表示插入数据,数据库会检查主键(primary key),如果主键重复,就会报错;
- replace into 表示替换数据,需要表的设计带有主键(primary key),或者唯一索引(unique),如果数据库已经存在数据,删除数据,插入新数据,如果没有数据,那就直接插入数据,效果等同于insert into;
- insert ignore into 表示表中如果有相同的数据时,忽略当前的数据,如果不存在,那就直接插入数据;
- on duplicate key update + 非主键列:有则就指定更新指定的列,没有就直接添加数据;
场景的使用意向:
- 要不捕获异常---------insert into;
- 删除老数据,,插入新数据 --------replace into
- 保存老数据,忽略新数据----------insert ignore into
- 只想更新数据部分列,其他不做更新---------on duplicate key update