Mysql无法添加外键约束错误
我知道这个错误已经有好几个答案了 我的错误:1215无法添加外键约束错误 但其中任何一种都有效: -外键的类型与原始键的类型相同 -它们有相同的编码 -都是innoDB的 当我显示引擎INNODB状态时;:Mysql无法添加外键约束错误,mysql,sql,Mysql,Sql,我知道这个错误已经有好几个答案了 我的错误:1215无法添加外键约束错误 但其中任何一种都有效: -外键的类型与原始键的类型相同 -它们有相同的编码 -都是innoDB的 当我显示引擎INNODB状态时;: InnoDB=========================================================================2017-03-23…. 这是我的密码: CREATE TABLE IF NOT EXISTS `TBL_USERS_EK` (
InnoDB=========================================================================2017-03-23….
这是我的密码:
CREATE TABLE IF NOT EXISTS `TBL_USERS_EK` (
`user_ID_EK` INT(11) NOT NULL AUTO_INCREMENT,
`user_Name_EK` VARCHAR(100) NOT NULL,
`user_Email_EK` VARCHAR(100) NOT NULL,
`user_Pass_EK` VARCHAR(100) NOT NULL,
`user_Status_EK` enum('Y','N') NOT NULL DEFAULT 'N',
`tokenCode_EK` VARCHAR(100) NOT NULL,
`user_rank_EK` VARCHAR(100) NOT NULL DEFAULT 'Apprenti detective',
`nb_validation_enigma` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_ID_EK`),
UNIQUE KEY `user_Email_EK` (`user_Email_EK`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `TBL_ENIGMA_EK` (
`enigma_ID_EK` INT(11) NOT NULL AUTO_INCREMENT,
`nbr_enigma_part_EK` INT(11) NOT NULL,
`user_ID_EK` INT(11) NOT NULL,
`validation_status` enum('Y','N') NOT NULL DEFAULT 'N',
PRIMARY KEY (`enigma_ID_EK`),
CONSTRAINT `TBL_ENIGMA_FK` FOREIGN KEY (`user_ID_EK`)
REFERENCES `TBL_USERS_EK`(`user_ID_EK`)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `TBL_PART_EK` (
`part_ID_EK` INT(11) NOT NULL AUTO_INCREMENT,
`nbr_enigma_subpart_EK` INT(11) NOT NULL,
`enigma_ID_EK` INT(11) NOT NULL,
`user_ID_EK` INT(11) NOT NULL,
`validation_status` enum('Y','N') NOT NULL DEFAULT 'N',
PRIMARY KEY (`part_ID_EK`),
CONSTRAINT `TBL_PART_FK1` FOREIGN KEY (`enigma_ID_EK`)
REFERENCES `TBL_ENIGMA_EK`(`enigma_ID_EK`)
ON DELETE CASCADE,
CONSTRAINT `TBL_PART_FK2` FOREIGN KEY (`user_ID_EK`)
REFERENCES `TBL_USER_EK`(`user_ID_EK`)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
外键
语法的表
名称中有输入错误。它应该是REFERENCES(TBL\u USERS\u EK
),而不是REFERENCES(TBL\u USERS\u EK
,下面应该可以:
CREATE TABLE IF NOT EXISTS `TBL_PART_EK` (
`part_ID_EK` INT(11) NOT NULL AUTO_INCREMENT,
`nbr_enigma_subpart_EK` INT(11) NOT NULL,
`enigma_ID_EK` INT(11) NOT NULL,
`user_ID_EK` INT(11) NOT NULL,
`validation_status` enum('Y','N') NOT NULL DEFAULT 'N',
PRIMARY KEY (`part_ID_EK`),
CONSTRAINT `TBL_PART_FK1` FOREIGN KEY (`enigma_ID_EK`)
REFERENCES `TBL_ENIGMA_EK`(`enigma_ID_EK`)
ON DELETE CASCADE,
CONSTRAINT `TBL_PART_FK2` FOREIGN KEY (`user_ID_EK`)
REFERENCES `TBL_USERS_EK`(`user_ID_EK`)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
TBL_PART_EK至TBL_USERS_EK中的外键存在语法错误。 您已将其命名为TBL_USER_EK,而应为TBL_USERS_EK 删除打字错误或用这个回复,它会工作的 在TBL_部分中 约束
TBL\u PART\u FK2
外键(user\u ID\u EK
)
参考资料TBL\u USER\u EK
(USER\u ID\u EK
)
在删除级联时您得到的错误是什么?