MySQL使多个外键指向一个表

时间:2013-12-13 13:41:54

标签: mysql foreign-keys

我在InnoDB上使用MySQL 我有这个(简化的)表结构:

表用户:
  - id

表User_docs:
  - id
  - user_id(应指向users.id)

表User_dogs:
  - id
  - user_id(也应指向users.id)

所以我做了前2个表并添加了这样的外键:
添加约束fk_user_id外键(worker_id)参考usersid);

它的一切都很好,但后来我已经制作了第三张桌子并希望做同样的事情,但MySQL说我不能有多个同名的约束。

所以我的问题是:

我应该将我的约束重命名为fk_user_docs_to_user_idfk_user_dogs_to_user_id吗?

或(ofc更好) - 我可以在两个表中使用已创建的fk_user_id contsraint吗?

我很抱歉,如果这个问题很愚蠢而且多次问过,但是我有一个小时的谷歌搜索并没有发现任何东西,我觉得这是一个简单的基本情况,没有人问它

1 个答案:

答案 0 :(得分:1)

您必须以不同方式命名它们,并且不能在两个表中使用相同的约束。

您甚至可以删除该名称,让mysql为您指定名称:

ADD CONSTRAINT FOREIGN KEY (worker_id) REFERENCES users (id);