0
下面的代碼,當被執行時產生以下錯誤:MySQL的ALTER TABLE作成: '完整性約束違規:1452'
致命錯誤:未捕獲的異常 'PDOException' 與消息「SQLSTATE [23000]:完整性約束違規: 1452無法添加或更新子行,外鍵約束失敗
$db->executeUpdate('CREATE TABLE submission_statuses (name VARCHAR(255) NOT NULL,
weight INT NOT NULL, PRIMARY KEY(name)) ENGINE = InnoDB');
$db->executeUpdate('ALTER TABLE submissions ADD CONSTRAINT IDX_4
FOREIGN KEY (status) REFERENCES submission_statuses(name)');
$db->executeUpdate('CREATE INDEX IDX_4 ON submissions (status)');
的表都使用InnoDB引擎。
這與錯誤無關,但您應該知道不需要爲外鍵列添加索引。從MySQL 4.1.2開始,創建一個外鍵約束會自動創建一個索引,如果這個索引不存在的話。 – 2012-02-03 21:19:20