2012-11-15 98 views
3

我現在正在學習一個教程,學習如何在我現有的站點中構建一些東西。PHP/MySQL - 外鍵問題

的教程告訴我,我需要對我的數據庫

ALTER TABLE posts ADD FOREIGN KEY(post_by) REFERENCES users(user_id) ON DELETE RESTRICT ON UPDATE CASCADE; 

,並收到錯誤說它不能創建表的IM運行此。

'用戶'表來自我現有的數據庫,其他的都是新的。

該教程給了我幾個修改命令來運行,他們都完美,除非當試圖使用'用戶'表。

我完全堅持這一點,任何幫助將不勝感激。

乾杯

回答

8

檢查你的表型。它應該是InnoDB

+0

哦宕,您的權利,用戶表是MyISAM的...嗯,是有一個SQL命令,我可以運行改變它過度? – BigJobbies

+2

@BigJobbies'ALTER TABLE表ENGINE = INNODB' – h2ooooooo

1

看看http://dev.mysql.com/doc/refman/5.1/en/alter-table.html,很清楚每個引擎可以使用哪些選項。

看看它描述的部分:

對於其它存儲:

外鍵和參考條款是由InnoDB的 存儲引擎

,並支持引擎,子句被解析但被忽略。

正如h2ooooooo說,你可以改變你的引擎:

ALTER TABLE table ENGINE = INNODB