看下面三个表的创建(大量字段省略,对此问题无影响)。
前两个表创建成功,但是当创建最后一个表时:[Err] 1005 – Can”t create table “company.tab_freeinfo” (errno: 121)
将最后一个表的typeId 不设为外键时,成功创建表。
两个表的外键不能指向同一个表的主键吗?
(高手们,不好意思,全部家当就25分!)
create table tab_infoType(
id int primary key,
name varchar(32) not null
)
create table tab_payInfo(
id int auto_increment primary key,
typeId int ,
constraint fk_typeid foreign key(typeId)
references tab_infoType (id)
)
create table tab_freeInfo(
id int auto_increment primary key,
typeId int ,
constraint fk_typeid foreign key(typeId)
references tab_infoType (id)
)
前两个表创建成功,但是当创建最后一个表时:[Err] 1005 – Can”t create table “company.tab_freeinfo” (errno: 121)
将最后一个表的typeId 不设为外键时,成功创建表。
两个表的外键不能指向同一个表的主键吗?
(高手们,不好意思,全部家当就25分!)
create table tab_infoType(
id int primary key,
name varchar(32) not null
)
create table tab_payInfo(
id int auto_increment primary key,
typeId int ,
constraint fk_typeid foreign key(typeId)
references tab_infoType (id)
)
create table tab_freeInfo(
id int auto_increment primary key,
typeId int ,
constraint fk_typeid foreign key(typeId)
references tab_infoType (id)
)
解决方案
25
贴出show create table tab_infoType 以供分析,确认存储引擎为innodb而不是myisam