MySQL INSERT IGNORE或ON DUPLICATE KEY DO_NOTHING

265*_*265 5 mysql

已经搜索过这些主题并找到了2个不同的解决方案,但没有人工作.

我的桌子有结构| ID(auto_increment primary_key)| UID(int)| FAV_ID(int)|

如果UID和FAV_ID(两者)已经存在,我需要向此FAV_TABLE插入新记录.

我的查询示例:

INSERT INTO FAV_TABLE (uid, fav_id) VALUES ($u_id,$s_id) ON DUPLICATE KEY UPDATE  uid = uid 
Run Code Online (Sandbox Code Playgroud)

或者这个

INSERT IGNORE FAV_TABLE (uid, fav_id) VALUES ($u_id,$s_id);
Run Code Online (Sandbox Code Playgroud)

正如mysql手册所说,只有当PRIMARY_KEY相同时,此查询才会添加记录.如果对uid + fav_id是唯一的,我需要查询不添加记录.有解决方案吗 谢谢

egg*_*yal 5

您需要UNIQUE KEY在这些列上添加一个:

ALTER TABLE FAV_TABLE ADD UNIQUE KEY(uid, fav_id);
Run Code Online (Sandbox Code Playgroud)