简体   繁体   中英

error in adding foreign key

I have two tables: tab1,tab2

I want add a foreign key to tab2 and wrote this query

ALTER TABLE tab2
ADD FOREIGN KEY(name) REFERENCES tab1(name)

But I get this error:

error 1005(HY000):can't create table 'club.#sql-6f0_2' (errno:150)

What is wrong?

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)

I answered this for you about an hour ago in a comment on your other question, but here it is again:

You can get details on that error by running SHOW ENGINE INNODB STATUS\\G and reading the LATEST FOREIGN KEY ERROR section.

The most likely reasons for this failure:

  • tab1.name and tab2.name are not exactly the same data type
  • tab1.name is not unique

try this:

alter table tab2
add foreign key my_key(name) references tab1(name)

maybe Your key should have a name?

您不能在默认的MySQL存储引擎(ISAM,MyISAM)上定义外键,使用InnoDB作为引擎,然后添加外键约束。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM