繁体   English   中英

MySQL InnoDB创建FK错误

[英]MySQL InnoDB Create FK error

我正在尝试创建自引用FK:

DROP TABLE IF EXISTS `Company`;
CREATE TABLE `Company` (
  `company_id`        INTEGER(32) UNSIGNED AUTO_INCREMENT,
  `parent_company_id` INTEGER(32),
  PRIMARY KEY (`company_id`)
) ENGINE=InnoDB;

ALTER TABLE `Company` 
  ADD FOREIGN KEY `parent_company_id` REFERENCES `Company`(`company_id`);

我收到以下错误:

1064-您的SQL语法有误; 在第1行的“ REFERENCES Companycompany_id )”附近检查与您的MySQL服务器版本相对应的手册以使用正确的语法

得到它了。

您必须更改的定义

parent_company_id INTEGER(32)

要匹配company_id(自动增量除外),然后使用此语句

ALTER TABLE `Company` 
  ADD CONSTRAINT fk_parent_company_id FOREIGN KEY (`parent_company_id`) REFERENCES `Company`(`company_id`)

因此,基本上请记住将unsigned放在要用作FK的列上,以便它与引用键的定义匹配

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM