小编典典

mysql表中的多个外键指向相同的主键

sql

我有一个表useruserID作为主键。我还有另一张桌子Friends。在Friends表中,我有两个用户的朋友表示由列UserIDFrndID其中两个UserIDFrndID应该是一个userIDuser

我要加强数据完整性。我可以使用这样的东西吗?

ADD CONSTRAINT `ufd_users_fk` FOREIGN KEY (`userId`, `friendId`)
REFERENCES `users` (`userId`, `userId`) ON DELETE CASCADE ON UPDATE CASCADE;

我想知道REFERENCES用户(userId
,userId)多次正确引用一列吗?我之所以没有创建2个单独的约束,是因为两个用户都必须存在于table中user


阅读 209

收藏
2021-03-17

共1个答案

小编典典

不,您应该创建两个外键:

ADD CONSTRAINT `ufd_users_fk` FOREIGN KEY (`userId`) 
  REFERENCES `users` (`userId`) 
  ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `ufd_users_fk` FOREIGN KEY (`friendId`) 
  REFERENCES `users` (`userId`) 
  ON DELETE CASCADE ON UPDATE CASCADE;
2021-03-17