我尝试添加外键,但未添加。我读了几个有关此事的问题。但是这些选项对我不起作用。 (Tried as this way too
我的表结构如下
tab_project
栏名
ProjectID->主键
项目名
tab_project_day
主键----> ProjectID + Day
外键----> ProjectID在tab_project中引用ProjectID
tab_photo
主键---->
我想创建tab_photo外键,如下所示:
tab_photo.ProjectID->参考tab_project_day.ProjectID
tab_photo.Day ------>参考tab_project_day.day
在这里不允许我添加tab_photo.Day键。
我尝试过这个
ALTER TABLE `tab_photo` ADD FOREIGN KEY (`Day`) REFERENCES
`xyz`.`tab_project_day`(`Day`) ON DELETE RESTRICT ON UPDATE RESTRICT;
它给出以下错误:
#1005 - Can't create table 'xyz.#sql-97c_1c6' (errno: 150)
这是什么原因?请帮忙!!!
最佳答案
请检查两个表的排序规则。我发现如果表A与表B的排序规则不同,则无法创建外键。两个表必须是相同的排序规则。而且这些列也必须是相同的排序规则。
我怀疑这可能是您的问题。运行以下查询以查看排序规则
表排序规则:
SELECT TABLE_NAME,
TABLE_COLLATION
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = "tab_project"
OR TABLE_NAME="tab_project_day"
列排序规则:
SELECT TABLE_NAME
, COLUMN_NAME
, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = "tab_project"
OR TABLE_NAME="tab_project_day"
关于mysql - phpmyadmin不允许我添加外键关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14332523/