簡體   English   中英

SQL#1215-無法添加外鍵約束

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM