【问题标题】:Error creating foreign key (Data Types and Action are Identical)创建外键时出错(数据类型和操作相同)
【发布时间】:2015-07-30 22:23:16
【问题描述】:

我正在使用 PHYMyAdmin 创建数据库并创建关系。我收到此错误:

Error creating foreign key on SectionNumber (check data types)

当我尝试执行此 SQL 时:

ALTER TABLE `REGISTER` ADD CONSTRAINT `SectionNumber`
FOREIGN KEY (`SectionNumber`) 
REFERENCES `REGISTRATION_SYSTEM`.`SECTION`(`SectionNumber`)
ON DELETE RESTRICT ON UPDATE RESTRICT;

在这个表结构上

CREATE TABLE IF NOT EXISTS `REGISTER` (
  `StudentID` int(10) unsigned NOT NULL,
  `CourseNumber` int(10) unsigned NOT NULL,
  `SectionNumber` int(10) unsigned NOT NULL,
  `Semester` int(10) unsigned NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `SECTION` (
  `CourseNumber` int(10) unsigned NOT NULL,
  `SectionNumber` int(10) unsigned NOT NULL,
  `Semester` int(10) unsigned NOT NULL,
  `InstructorStaffID` int(10) unsigned NOT NULL,
  `MaxEnrollment` tinyint(3) unsigned NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我搜索了很多,最常见的错误似乎是数据类型不匹配。从上面的 CREATE TABLE SQL 中可以看出,我相当确定键的数据类型匹配。

任何帮助将不胜感激! 谢谢, 丹

【问题讨论】:

    标签: mysql relationship foreign-key-relationship


    【解决方案1】:

    尝试更改约束名称:

    ALTER TABLE `REGISTER` ADD CONSTRAINT `SectionNumberConstraint`
    FOREIGN KEY (`SectionNumber`) 
    REFERENCES `REGISTRATION_SYSTEM`.`SECTION`(`SectionNumber`)
    ON DELETE RESTRICT ON UPDATE RESTRICT;
    

    【讨论】:

    • 谢谢。我尝试使用您建议的更改,但没有解决问题。仍然得到同样的错误。
    猜你喜欢
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多