【发布时间】:2017-12-12 14:04:12
【问题描述】:
我在尝试填充我的固定装置时遇到了问题。我有 2 张桌子(客户和合作伙伴)。
CREATE TABLE `partner` (
`id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`client_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
UNIQUE KEY `client_id` (`client_id`),
CONSTRAINT `partner_ibfk_3` FOREIGN KEY (`client_id`) REFERENCES `client`
(`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
CREATE TABLE `client` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`partner_id` tinyint(3) unsigned DEFAULT NULL,
`partner_ref` varchar(7) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `partner_ref` (`partner_ref`,`partner_id`),
KEY `partner_id` (`partner_id`),
CONSTRAINT `client_ibfk_1` FOREIGN KEY (`partner_id`) REFERENCES `partner`
(`id`),
) ENGINE=InnoDB AUTO_INCREMENT=667305 DEFAULT CHARSET=utf8 PACK_KEYS=0;
当我运行我的装置时,我遇到了这个问题:
ERROR 1215 (HY000) at line 863: 无法添加外键约束
我想这是因为在创建表“合作伙伴”时,表“客户”不是,所以找不到外键。
但是,如果我更改并将“客户”放在“合作伙伴”之前,问题是一样的。
感谢您的帮助!
【问题讨论】:
-
innodb在我问这个问题时没有应用标签!
标签: mysql sql database foreign-keys innodb