-
24-10-2019 - |
题
我有两个桌子: 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)
解决方案
大约一个小时前,我在您的另一个问题的评论中为您回答了这一点,但这又是:
您可以通过运行获得有关该错误的详细信息 SHOW ENGINE INNODB STATUS\G
并阅读 LATEST FOREIGN KEY ERROR
部分。
造成此失败的最可能原因:
- TAB1.NAME和TAB2.NAME不是完全相同的数据类型
- TAB1.NAME不是唯一的
其他提示
尝试这个:
alter table tab2
add foreign key my_key(name) references tab1(name)
也许您的钥匙应该有名字?
您无法在默认MySQL存储引擎(ISAM,Myisam)上定义外国键,使用InnoDB作为引擎,然后添加外键约束。
不隶属于 StackOverflow