我創建了一個名爲「Payments」的表,後來才意識到我需要更改它的兩列中的名稱和數據類型。我放棄了,並想重新創建它 - 但現在我得到的錯誤消息:「無法創建表‘dev_datenbank.payment’(錯誤:150)」在MySql-DB上重新創建errno 150中的表結果
CREATE TABLE Payment(
payment_id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
payment_gemeindeid INTEGER NOT NULL,
payment_initiator TIMESTAMP,
payment_zyklus INTEGER,
payment_received BOOLEAN DEFAULT false
);
ALTER TABLE Payment ADD FOREIGN KEY(payment_gemeindeid) REFERENCES Gemeinde(gemeinde_id);
我看着類似的問題在這裏,但我還沒有找到解決方案。大多數時候,當其他人遇到這個問題時,它必須處理FK列上具有不同數據類型的表。但在我的情況下,都是INTEGER。 另外,所有列的數據庫類型都是'InnoDB'。
我假定外鍵約束沒有正確地從MySQL中刪除。我檢查了information_schema中的表KEY_COLUMN_USAGE,但在這裏我看不到任何遺蹟。
CREATE TABLE Gemeinde
(gemeinde_id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
gemeinde_name VARCHAR(50) NOT NULL,
gemeinde_amt INTEGER,
gemeinde_status INTEGER NOT NULL DEFAULT 1,
gemeinde_info VARCHAR(512)
);
同時顯示創建表Gemeinde的表聲明。 – fancyPants
感謝您的回覆。我在主要描述中添加了create語句。 – Tongamann
兩個表都需要在同一個引擎上運行,並且字段必須具有相同的類型和長度 –