我试图创建一个表的两列的外键指向另一个表的同一列,但我似乎得到一个错误......添加外键上多列
这里是我做的:
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)
如果我只有一列,但是,正确地创建表。
有人能指出我错误在哪里吗?
感谢 ň
test1的DDL是什么? – Chandu 2011-02-16 23:34:31
@Cybernate:对不起,忘了指定,ID是test1的主键,与col1和col2(INT)的类型相同。还有一堆其他的列(但这不重要),也没有设置其他约束或索引。 – nico 2011-02-16 23:37:04
您是否在未指定级联更新或删除的情况下尝试此操作? – Thomas 2011-02-17 00:07:19