mysql创建表时添加外键约束产生Cannot add foreign key constraint
例如创建了user(user_id pk)表和role(role_id pk)表,当创建user_role(user_id fk,role_id fk)关联表的时候就出现问题。
1.所添加外键必须是另一个表的主键。
2.所关联的外键的类型必须和另一个表的主键相同.user中的user_id的类型必须和user_role中的user_id的类型相同;role中的role_id的类型必须和user_role中的role_id的类型相同
3.使用navicat连接mysql时,没有新建数据库,使用的是默认数据库,其原因主要是
数据库引擎不同!
查询user表数据库引擎语句show create table user;
查询结果如下所示:
CREATE TABLE user
(
user_id
int(11) NOT NULL,
username
varchar(30) NOT NULL,
PRIMARY KEY (user_id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
查询role表数据库引擎语句show create table role;
CREATE TABLE role
(
role_id
int(11) NOT NULL,
rolename
varchar(30) NOT NULL,
PRIMARY KEY (role_id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8