【发布时间】:2011-06-28 18:02:41
【问题描述】:
我试图在一个表的两列上创建一个外键以指向另一个表的同一列,但我似乎得到了一个错误...
这是我的工作:
CREATE TABLE test2 (
ID INT NOT NULL AUTO_INCREMENT,
col1 INT NOT NULL,
col2 INT NOT NULL,
PRIMARY KEY (ID),
CONSTRAINT fk FOREIGN KEY (col1, col2)
REFERENCES test1(ID, ID)
ON UPDATE CASCADE
ON DELETE RESTRICT
) ENGINE=InnoDB;
但我明白了
ERROR 1005 (HY000): Can't create table 'DB.test2' (errno: 150)
但是,如果我只有一列,则该表已正确创建。
有人能指出错误在哪里吗?
谢谢 n
【问题讨论】:
-
@Cybernate:抱歉,忘记说明了,ID是test1的主键,与col1和col2(INT)的类型相同。还有一堆其他列(但这不重要)并且没有设置其他约束或索引。
-
您是否尝试过此操作而不指定级联更新或删除?
-
@Thomas:是的,我尝试省略 ON UPDATE 和 ON DELETE 但它不会改变结果...
标签: mysql foreign-keys mysql-error-1005