我觉得我已经在一对非常简单的创建表语句上尝试了一切可能的方法。
类型匹配,我尝试使用 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 http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)