[英]#1215 - Cannot add foreign key constraint
--Items table
CREATE TABLE IF NOT EXISTS items(
ID int NOT NULL AUTO_INCREMENT,
itemID varchar(10),
itemName varchar(40),
description varchar(100),
unitPrice int (10),
CONSTRAINT Items_pk PRIMARY KEY(ID,itemID)
)ENGINE=INNODB
--Stock Table
CREATE TABLE IF NOT EXISTS stock(
ID int NOT NULL AUTO_INCREMENT PRIMARY KEY,
availableQty int(10),
itemID varchar(10),
CONSTRAINT Items_fk FOREIGN KEY (itemID) REFERENCES items(itemID)
ON DELETE RESTRICT
ON UPDATE CASCADE
)ENGINE=INNODB
您正在嘗試向不是 key 的內容添加外鍵約束。 注意約束:
CONSTRAINT Items_fk FOREIGN KEY (itemID) REFERENCES items(itemID)
並注意items
的關鍵:
CONSTRAINT Items_pk PRIMARY KEY(ID,itemID)
itemID
不是items
的鍵。 您需要這兩個值才能引用鍵。 像這樣的東西:
CREATE TABLE IF NOT EXISTS stock(
ID int NOT NULL AUTO_INCREMENT PRIMARY KEY,
availableQty int(10),
itemID int,
itemItemID varchar(10),
CONSTRAINT Items_fk FOREIGN KEY (itemID, itemItemID) REFERENCES items(ID, itemID)
ON DELETE RESTRICT
ON UPDATE CASCADE
)ENGINE=INNODB
自然,您可能希望使用更好的命名。 目前這有點不直觀,因為對於任何給定的“項目”,您都有兩個稱為“ID”的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.