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