on duplicate key update----unique索引实现唯一性

一  关键字 on duplicate key update的介绍

1.1 介绍

在MySQL数据库中,如果在insert语句后面带上ON DUPLICATE KEY UPDATE 子句,而要插入的行与表中现有记录的惟一索引或主键中产生重复值,那么就会发生旧行的更新;如果插入的行数据与现有表中记录的唯一索引或者主键不重复,则执行新纪录插入操作。

原理是:

该语法会在插入数据之前判断,如果主键或唯一索引不存在,则插入数据。如果主键或唯一索引存在,则执行更新操作。

需要注意的是,在高并发的场景下使用on duplicate key update语法,可能会存在死锁的问题,所以要根据实际情况酌情使用。

1.2 实操案例

本案例:使用unique索引结合ON DUPLICATE KEY UPDATE语句实现,添加数据确保数据的唯一性,不重复,有则修改,没有则新添加。

1.新建表

id为为主键,name+sex组合成索引

on duplicate key update----unique索引实现唯一性_第1张图片

on duplicate key update----unique索引实现唯一性_第2张图片

2.执行sql语句

再次执行:

两次执行结果:可以看到实现了"有则修改,无则新添加"的效果

你可能感兴趣的:(mysql数据库,数据库,sql,mysql)