MySql避免重复插入记录的几种方法

时间:2022-09-01 21:41:50

参考 http://www.jb51.net/article/40635.htm

方案一:使用ignore关键字

如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用:

INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('test9@163.com', '99999', '9999'); 

这样当有重复记录就会忽略,执行后返回数字0
还有个应用就是复制表,避免重复记录:

INSERT IGNORE INTO `table_1` (`name`) SELECT `name` FROM `table_2`; 

方案二:使用Replace

REPLACE INTO `table_name`(`col_name`, ...) VALUES (...);
REPLACE INTO `table_name` (`col_name`, ...) SELECT ...;
REPLACE INTO `table_name` SET `col_name`='value';

REPLACE的运行与INSERT很相像,但是如果旧记录与新记录有相同的值,则在新记录被插入之前,旧记录被删除。