导读:很多时候我们在做数据插入的时候需要判断一下当前我插入的数据是否已经存在于数据库中。
一般情况下我们会写两条sql去操作
select 查询当前插入的数据是否已经存在如果不存在就插入新的记录,如果存在就提示用户该记录已经存在在mysql里面可以这么操作,如果记录存在就跳过或者更新,不存在就插入!
IGNORE
这个是根据插入表的主键和唯一索引去匹配的,如果当前插入的记录存在则跳过不插入。
示例:
INSERT IGNORE INTO `user` ('phone') VALUES ('18888888888');
此时user表中phone字段是唯一的,如果有这条记录则不执行插入操作,如果出现重复数据,将不返回错误,只是以警告形式返回。
on duplicate key update
主键或者唯一索引有重复时,则执行update操作
示例:
假设有一张表,id为主键,并且表中已经存在了id=1,likes=5的记录,此时下面两条sql等价。
INSERT INTO TABLENAME (id,likes) VALUES (1,18) ON DUPLICATE KEY UPDATE likes=likes+1;
UPDATE TABLENAME SET li