(MySQL)主键和2个相同的外键

(MySQL)主键和2个相同的外键,mysql,primary-key,composite-primary-key,Mysql,Primary Key,Composite Primary Key,我有三张桌子: Users: _id_, username Movies: _id_, title Friends: _#id1, #id2_, accepted 我是InnoDB的,一切都是这样。但是,即使好友的主键是(users.id,users.id),MySQL也会接受这样的两行: 1) (1, 2) 2) (2, 1) 有没有办法把这2行看作MySQL的复制键? 谢谢你的帮助。我想不出任何办法让MySQL独自解决这个问题。对于此表上的任何插入/更新,我将使用最大()和最小() IN

我有三张桌子:

Users: _id_, username
Movies: _id_, title
Friends: _#id1, #id2_, accepted
我是InnoDB的,一切都是这样。但是,即使好友的主键是(users.id,users.id),MySQL也会接受这样的两行:

1) (1, 2)
2) (2, 1)

有没有办法把这2行看作MySQL的复制键?


谢谢你的帮助。

我想不出任何办法让MySQL独自解决这个问题。对于此表上的任何插入/更新,我将使用最大()和最小()

INSERT INTO friends (LEAST(_#id1, _#id2), GREATEST(_#id1, _#id2));

所以你永远不会得到(2,1)并且永远都会得到(1,2)。

我想不出任何办法让MySQL单独解决这个问题。对于此表上的任何插入/更新,我将使用最大()和最小()

INSERT INTO friends (LEAST(_#id1, _#id2), GREATEST(_#id1, _#id2));
所以你永远不会得到(2,1),而且总是得到(1,2)