PHP / MySQL - 外键问题

时间:2012-11-15 13:52:52

标签: php mysql

我现在正在学习教程,并学习如何在现有网站中构建内容。

教程告诉我,我需要针对我的数据库运行它

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

并且我收到错误,说它无法创建表。

'users'表来自我现有的数据库,其他一切都是新的。

本教程给了我一些运行的alter命令,它们都很完美,除非我试图使用'users'表。

我完全坚持这一点,任何帮助将不胜感激。

干杯

2 个答案:

答案 0 :(得分:8)

检查您的桌子类型。它应该是InnoDB

答案 1 :(得分:1)

看看http://dev.mysql.com/doc/refman/5.1/en/alter-table.html,非常明确每个引擎可用的选项。

查看描述的部分:

  

InnoDB支持FOREIGN KEY和REFERENCES子句   存储引擎

  

对于其他存储引擎,会解析子句但忽略它们。

正如h2ooooooo所说,你可以改变你的引擎:

ALTER TABLE table ENGINE = INNODB