[英]SQL #1215 - Cannot add foreign key constraint
我已经有了这段代码来创建SQL表,但是我遇到了#1215错误。
CREATE TABLE ‘Categorie’ (
‘catID’ int(11) NOT NULL AUTO_INCREMENT,
‘naam’ varchar(20) NOT NULL,
‘prioriteit’ int(2) NOT NULL,
‘subCatVan’ int(11) DEFAULT NULL,
PRIMARY KEY (‘catID’),
CONSTRAINT ‘subCatVan’ FOREIGN KEY (‘subCatVan’) REFERENCES Categorie
(‘catID’) ON DELETE SET NULL ON UPDATE CASCADE
);
感谢帮助!
正如Jens已经指出的那样,您的滴答声有问题。 首先,在MySQL中的标识符引号字符是反引号(')在默认情况下,第二,你是不是使用蜱在您的外键约束的表名。
用反引号替换所有的滴答声,您的语句将起作用(即使在外键约束中表名周围也没有滴答声)。 撇开所有的勾号,您的陈述将起作用。 更改REFERENCES Categorie
到REFERENCES 'Categorie'
和你的声明就可以了(虽然可能并不如预期)。
我建议在所有地方都使用反引号作为一种好的做法:
CREATE TABLE `Categorie` (
`catID` int(11) NOT NULL AUTO_INCREMENT,
`naam` varchar(20) NOT NULL,
`prioriteit` int(2) NOT NULL,
`subCatVan` int(11) DEFAULT NULL,
PRIMARY KEY (`catID`),
CONSTRAINT `subCatVan` FOREIGN KEY (`subCatVan`) REFERENCES `Categorie`
(`catID`) ON DELETE SET NULL ON UPDATE CASCADE
);
目前是什么情况是,你实际上没有创建一个名为表Categorie
,而是一个表名为'Categorie'
(包括蜱)。 因为你不使用你的外键约束相同的蜱中,MySQL查找一个名为表Categorie
没有蜱虫,因而不能找到你的参考目标。
尝试这个
CREATE TABLE `Categorie` (
`catID` INT(11) NOT NULL AUTO_INCREMENT,
`naam` VARCHAR(20) NOT NULL,
`prioriteit` INT(2) NOT NULL,
`subCatVan` INT(11) DEFAULT NULL,
PRIMARY KEY (`catID`),
CONSTRAINT `subCatVan` FOREIGN KEY (`subCatVan`) REFERENCES Categorie
(`catID`) ON DELETE SET NULL ON UPDATE CASCADE
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.