[英]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
Company
(company_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.