我在InnoDB上使用MySQL 我有这个(简化的)表结构:
表用户:
- id
表User_docs:
- id
- user_id(应指向users.id)
表User_dogs:
- id
- user_id(也应指向users.id)
所以我做了前2个表并添加了这样的外键:
添加约束fk_user_id
外键(worker_id
)参考users
(id
);
它的一切都很好,但后来我已经制作了第三张桌子并希望做同样的事情,但MySQL说我不能有多个同名的约束。
所以我的问题是:
我应该将我的约束重命名为fk_user_docs_to_user_id
和fk_user_dogs_to_user_id
吗?
或(ofc更好) - 我可以在两个表中使用已创建的fk_user_id
contsraint吗?
我很抱歉,如果这个问题很愚蠢而且多次问过,但是我有一个小时的谷歌搜索并没有发现任何东西,我觉得这是一个简单的基本情况,没有人问它
答案 0 :(得分:1)
您必须以不同方式命名它们,并且不能在两个表中使用相同的约束。
您甚至可以删除该名称,让mysql为您指定名称:
ADD CONSTRAINT FOREIGN KEY (worker_id) REFERENCES users (id);