我觉得我已经在一对非常简单的create table语句上尝试了所有可能的方法。
类型匹配,我尝试使用ENGINE = InnoDB,等等,但很困惑为什么出现外键错误。
我离开SQL已经有一段时间了,所以这可能很简单。
mysql> CREATE TABLE foo_ent(yyy_no VARCHAR(80), -> zoo VARCHAR(80), -> PRIMARY KEY (yyy_no)); Query OK, 0 rows affected (0.01 sec) mysql> CREATE TABLE cat_ent(some_item INTEGER, -> yyy_no VARCHAR(80), -> apple DECIMAL(6,2), -> PRIMARY KEY (some_item), -> FOREIGN KEY (yyy_no) REFERENCES foo_ent); ERROR 1005 (HY000): Can't create table 'test.cat_ent' (errno: 15 0)
抱歉,变量名称不正确,可以覆盖公司的内容。
您不引用字段,仅引用表,这是不正确的。
... foreign key (yyy_no) references foo_ent(yyy_no)
并且根据您的错误号,MySQL文档也指出了该错误。
如果重新创建已删除的表,则该表必须具有符合引用该表的外键约束的定义。如前所述,它必须具有正确的列名和类型,并且必须在引用的键上具有索引。如果不满足这些要求,MySQL将返回错误号1005,并在错误消息中引用错误150。
http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key- constraints.html