我有两张桌子:tab1,tab2
我想在tab2中添加一个外键并编写此查询
ALTER TABLE tab2
ADD FOREIGN KEY(name) REFERENCES tab1(name)
但是我收到了这个错误:
error 1005(HY000):can't create table 'club.#sql-6f0_2' (errno:150)
有什么问题?
Edit
i write this tables only for test.
tab1
name char(20) private key
lname char(20)
tab2
ssn int private key
name char(20)
答案 0 :(得分:4)
我在大约一个小时之前就你的另一个问题发表评论时回答了这个问题,但这又是:
您可以通过运行SHOW ENGINE INNODB STATUS\G
并阅读LATEST FOREIGN KEY ERROR
部分来获取有关该错误的详细信息。
这种失败的最可能原因是:
答案 1 :(得分:0)
试试这个:
alter table tab2
add foreign key my_key(name) references tab1(name)
也许你的钥匙应该有名字?
答案 2 :(得分:0)
您无法在默认的MySQL存储引擎(ISAM,MyISAM)上定义外键,使用InnoDB作为引擎,然后添加外键约束。