phpmyadmin不允许我添加外键关系

时间:2013-01-15 06:54:55

标签: mysql phpmyadmin

我试图添加外键但不添加它。我读了几个关于这件事的问题。但这些选择不适用于我。 (Tried as this way too

我的表结构如下

tab_project

列名称

ProjectID - >主键

项目名

tab_project_day

主键----> ProjectID + Day

外键----> ProjectID引用tab_project中的ProjectID

enter image description here

tab_photo

主键----> enter image description here

我想创建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)

这是什么原因?请帮忙!!!

1 个答案:

答案 0 :(得分:2)

请检查两个表的整理顺序。我发现如果表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"