5

已经搜索过此类主题并找到了 2 个不同的解决方案,但没有一个有效。

我的表有结构 | ID (auto_increment primary_key) | UID(整数)| 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 是唯一的,我需要查询不添加记录。有什么解决办法吗?谢谢

4

2 回答 2

5

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

ALTER TABLE FAV_TABLE ADD UNIQUE KEY(uid, fav_id);
于 2012-04-28T17:02:39.907 回答
2

INSERT IGNOREON DUPLICATE KEY仅在重复唯一键时才有效。

您需要UNIQUE在两个字段uidfav_id. 这样,当您插入重复的对时,它将被忽略。

于 2012-04-28T17:02:39.187 回答