我正在尝试创建一个自我引用的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语法出错;检查与MySQL服务器版本对应的手册,以便在第1行的“参考
Company
(company_id
)'附近使用正确的语法
答案 0 :(得分:0)
知道了。
你必须改变
的定义 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`)
所以基本上记得把无符号放在你用作FK的列上,这样就可以匹配引用键的定义了