我知道有關於此問題的其他幾個帖子,但他們通常有一個明顯的原因。我看不出我的代碼有什麼問題。無法添加外鍵約束 - MySQL工作臺
我曾嘗試:
- 確保ENGINE = INNODB。
- 確保使用相同的數據類型。
- 刪除代碼並僅測試發生錯誤的表。
以下是代碼。有兩個表,DESSERT和OFFER。我在OFFER中創建了兩個與DESSERT中的主鍵相對應的外鍵。
重要的事實:
- 我可以評論掉第二外鍵(對應於 DESSERT_DATE),和代碼運行。第一個外鍵創建 我沒有問題。
感謝您的幫助。
CREATE TABLE DESSERT (
DESSERT_CODE VARCHAR(10) NOT NULL,
DESSERT_DATE VARCHAR(40) NOT NULL,
DESSERT_DESCR VARCHAR(160),
DESSERT_NAME VARCHAR(10),
DRINK_NAME VARCHAR(26),
TOPPING_NAME VARCHAR(26),
DESSERT_PRICE_AMOUNT NUMERIC(6, 2),
PRIMARY KEY(DESSERT_DATE, DESSERT_CODE)
);
CREATE TABLE OFFER (
DESSERT_CODE VARCHAR(10) NOT NULL,
DESSERT_DATE VARCHAR(40) NOT NULL,
RESTAURANT_ID VARCHAR(30) NOT NULL,
PRIMARY KEY(DESSERT_CODE, DESSERT_DATE, RESTAURANT_ID),
FOREIGN KEY (DESSERT_CODE) REFERENCES DESSERT(DESSERT_CODE),
FOREIGN KEY (DESSERT_DATE) REFERENCES DESSERT(DESSERT_DATE)
);
編輯:所以使外鍵組合和改變順序做了伎倆。
數據庫表已經創建,或者您需要創建? –
創建了DESSERT表。由於錯誤,OFFER無法創建。 – Blackb3ard
雅其有bcz你不能創建表(OFFER)沒有ID或主鍵 –