1. 访得首页
  2. 数据库

mysql学习问题-Foreign key constraint is incorrectly formed

外键的引用类型不一样,如主键是int外键是char 2、找不到主表中引用的列 3、主键和外键的字符编码不一致,也可能存储引擎不一样 4、将“删除时”和“更新时”都设置相同,如都设置成CASCADE。

CREATE TABLE t_employee(
    emp_id INT(3) PRIMARY KEY,
    emp_no INT(3) UNIQUE NOT NULL,
    emp_name VARCHAR(10) NOT NULL,
    emp_age tinyint(4) NOT NULL DEFAULT 25 CHECK (emp_age BETWEEN 20 AND 60),
    sex VARCHAR(1) CHECK (sex in ('男','女')),
    job VARCHAR(20),
    sal INT(10),    -- inline写法
    -- REFERENCES 主表(主表字段)
    -- dept_no int  REFERENCES t_dept(dept_no)
    -- outline写法
    dept_no int NOT NULL,FOREIGN KEY(dept_no) REFERENCES t_dept(dept_no) ON DELETE SET NULL);

上述报错:

[Err] 1005 - Can't create table `test`.`t_employee` (errno: 150 "Foreign key constraint is incorrectly formed")

原因:

格式为   dept_no int NOT NULL , 但是外键却为
FOREIGN KEY(dept_no) REFERENCES t_dept(dept_no) ON DELETE SET NULL ,删除格式的NOT NULL 即可
该错误一般出现原因如下:

1、外键的引用类型不一样,如主键是int外键是char

2、找不到主表中引用的列

3、主键和外键的字符编码不一致,也可能存储引擎不一样

4、将“删除时”和“更新时”都设置相同,如都设置成CASCADE。

本文来自投稿,不代表访得立场,如若转载,请注明出处:http://www.found5.com//view/1451.html

发表评论

游客 游客

评论列表(0条)

联系我们

18588220566

在线咨询:点击这里给我发消息

邮件:willjz@126.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code