已经搜索过这些主题并找到了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
或者这个
INSERT IGNORE FAV_TABLE (uid, fav_id) VALUES ($u_id,$s_id);
正如mysql手册所说,只有当PRIMARY_KEY相同时,此查询才会添加记录。 如果对uid + fav_id是唯一的,我需要查询不添加记录。 有解决方案吗谢谢
答案 0 :(得分:4)
您需要在这些列上添加UNIQUE KEY
:
ALTER TABLE FAV_TABLE ADD UNIQUE KEY(uid, fav_id);
答案 1 :(得分:2)
INSERT IGNORE
或ON DUPLICATE KEY
仅在复制唯一键时才有效。
您需要在UNIQUE
和uid
字段上添加fav_id
索引。
这样,当您插入重复对时,它将被忽略。