can't add foreign key in mysql?

 1 create table department
 2     (dept_name        varchar(20),
 3      building        varchar(15),
 4      budget                numeric(12,2) check (budget > 0),
 5      primary key (dept_name)
 6     );
 7
 8 create table course
 9     (course_id        varchar(8),
10      title            varchar(50),
11      dept_name        varchar(20),
12      credits        numeric(2,0) check (credits > 0),
13      primary key (course_id),
14      foreign key (dept_name) references department
15         on delete set null
16     );

显示出错can‘t add foreign key 。版本:MySQL5.6但在MySQL5.1上能运行
在网上各种找原因,都搞不定。最后是这样搞定的,太坑了:
 1 create table department
 2     (dept_name        varchar(20),
 3      building        varchar(15),
 4      budget                numeric(12,2) check (budget > 0),
 5      primary key (dept_name)
 6     );
 7
 8 create table course
 9     (course_id        varchar(8),
10      title            varchar(50),
11      dept_name        varchar(20),
12      credits        numeric(2,0) check (credits > 0),
13      primary key (course_id),
14      foreign key (dept_name) references department(dept_name)
15         on delete set null
16     );

can't add foreign key in mysql?

时间: 2024-10-18 19:54:32

can't add foreign key in mysql?的相关文章

Mysql使用Navicat建立外键时报错cannot add foreign key constraint分析

Mysql使用Navicat建立外键时报错cannot add foreign key constraint分析 1)要关联的字段类型或长度不一致. 2)两个要关联的表编码不一样. 3)某个表已经有记录了. 4)将"删除时"和"更新时"都设置相同,如都设置成CASCADE. 原文地址:https://www.cnblogs.com/neymargoal/p/10072347.html

mysql执行带外键的sql文件时出现mysql ERROR 1215 (HY000): Cannot add foreign key constraint的解决

ERROR 1215 (HY000): Cannot add foreign key constraint 最近在建表时遇到了这个错误,然后找了下找到了解决办法,记录下: 本来是要建两张表: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create table department( id int, name varchar(20) ); create table employee( id int primary key auto_increment, name varch

MySQL foreign key - How to define a foreign key in MySQL

table of contents Creating a MySQL foreign key MySQL foreign key support in database engines MySQL foreign keys and ON UPDATE and ON DELETE MySQL foreign key FAQ: How do I define a foreign key in MySQL? Answer: Here's a quick example of how I typical

mysql8.0数据库执行语句报1215-Cannot add foreign key constraint

原创公众号:路人甲Java     一位工作十年的前阿里P7大佬. 一.这个问题始终没整明白根本原因,只是换了个库再次执行可以成功. 1.在虚拟机中安装好linux系统后,想着装个mysql服务器吧,安装好之后就可以使用navicat进行连接操作了[具体搭建步骤后续更新]. 2.建好了也可以连接成功并创建了数据库,其他几张关联表也都执行成功,唯独在执行创建employees表的时候,界面报1215-Cannot add foreign key constraint,如下图: 3.经查阅资料,我做

Cannot add foreign key constraint @ManyToMany @OneToMany

最近在使用shiro做权限管理模块时,使用的时user(用户)-role(角色)-resource(资源)模式,其中user-role 是多对多,role-resource 也是多对多.但是在使用spring data jpa 进行关联映射数据库时,报错: Cannot add foreign key constraint.最后我这里产生错误的的原因是 reource 表中主键ID类型是 bigint , 而role-resource 关联表中的resource_id 是int型,所以报错. 其

[Err] 1215 - Cannot add foreign key constraint

添加外键:在A表中添加外键fk_A_B_1,将B表中的 user_id 指向A表的 主键 user_id. 要求: (1)user_id是A表的主键且在B表中对user_id添加索引约束,即key user_id_index (user_id) (2)两张表的user_id的数据格式完全一致 语法:ALTER TABLE `A` ADD CONSTRAINT `fk_A_B_1` FOREIGN KEY (`user_id`) REFERENCES `B` (`user_id`);

Django 迁移错误 Cannot add foreign key constraint

错误分析 更换数据库后 字符集错误 就是原来的库和新的库在外键的字符集上不一样 如图: 解决方案: 1.迁移先需要失败一次(既然出现了这个错误,说明已经迁移了一次) 2.修改当前表外键字段的字符集(或者说COLLATE),修改为外键关联表的字符集 查看表的创建语句(主要是查看外键关联表主键的字符集) SHOW CREATE TABLE `user_group` (查看创建表的命令) 修改字符集 ALTER TABLE user_group_info MODIFY employee_id VARC

ERROR 1215 (HY000): Cannot add foreign key constraint

MySQL中在为一个varchar类型数据列添加外键时,会发生上面所示的错误,这里我google了一下,感觉它们碰到的问题跟我这个说的有点不相干,尝试了多种方式后来才发现是:主表(table1)所对应关联的数据列必须为unique才可以. [sql] view plain copy #指定主表dept列unique约束 alter table table1 modify dept varchar(5) not null unique. 这里我创建了两张表(table2. table1),表结构如

Cannot add foreign key constraint 错误解决办法

产生这个错误的多数原因有一下两点: 1,两张表里要设主键和外键的字段的数据类型或者数据长度不一样 (例如这个是int 另外一个是tinyint,或者都是int,但是设置的长度不同) 2,某个表里已经有记录了 3.两个表的引擎不一样,查看表的引擎语句: show table status from 数据库名 where name='表名'; 4.要设置外键的字段不能为主键 5.改建所参考的字段必须为主键 6.两个字段必须具有相同的数据类型和约束 原文地址:https://www.cnblogs.c