1. 程式人生 > >MySQL如果不存在則插入,保證不重複插入

MySQL如果不存在則插入,保證不重複插入

INSERT INTO IF EXISTS

MySQL的INSERT INTO IF EXISTS語句可以保證不重複插入,一般使用者批量匯入一些格式化好的資料。

INSERT INTO category(catname,cattype,cid,caturl,keywords) 
SELECT '中國人', 2, 2031, 'china','中國人民' FROM DUAL 
WHERE NOT EXISTS
(SELECT catname FROM category WHERE catname = '中國人');

其中DUAL是臨時表,不需要物理建立,這麼用即可。

ON DUPLICATE KEY UPDATE

還有另外一種方法ON DUPLICATE KEY UPDATE,一般用於一張的資料匯入到另一張表中。

INSERT INTO tb_count(uuid, click, liked, comment_count ) 
(SELECT uuid, click, liked, comment_count FROM tb_content) 
ON DUPLICATE KEY UPDATE tb_count.uuid = tb_count.uuid;

參考:https://my.oschina.net/jsan/blog/270161/