mysql创建表时添加外键约束产生Cannot add foreign key constraint

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

你可能感兴趣的:(mysql)