我在添加一個外鍵時出錯。我有:MYSQL:外鍵錯誤
CREATE TABLE PRODUCT_1(PROD_ID NUMERIC(5) NOT NULL PRIMARY KEY,
PROD_NAME CHAR(20),
PROD_DESC CHAR(20),
PROD_PRICE NUMERIC(20),
SIZE_ID NUMERIC(5) NOT NULL,
PROD_CAT_ID CHAR(5));
CREATE TABLE SIZE(
SIZE_ID NUMERIC(5) NOT NULL PRIMARY KEY,
SIZE_SMALL CHAR(2),
SIZE_MEDIUM CHAR(2),
SIZE_LARGE CHAR(2));
我嘗試使用添加外鍵:
ALTER TABLE SIZE 添加外鍵(SIZE_ID)引用PRODUCT_1(SIZE_ID)
,但我得到了以下錯誤: ERROR 1005(HY000):無法創建表 './mmmm/#sql-842_33e1.frm'(錯誤:150)
但是,如果我去倒過來,如:
ALTER TABLE PRODUCT_1 添加外鍵(SIZE_ID)引用SIZE(SIZE_ID)
這工作得很好,我不能對任何數據添加到它那裏給我像「不能更新子表」的錯誤。
任何幫助表示讚賞!
'size_id'既不是product_1中的主鍵也不是唯一鍵。一個外鍵只能引用那些。您可能需要在(product_1)中創建(prod_id,size_id)主鍵,並將「prod_id」添加到「size」表中。 –