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


    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、主键和外键的字符编码不一致,也可能存储引擎不一样

     
  • 相关阅读:
    题解-Quantifier Question
    题解-[WC2011]最大XOR和路径
    笔记-Recursive Queries
    树套树
    SG函数
    题解-Magic Ship
    分块
    文章根据时间段显示的微信名和微信号
    jquery 在页面上根据ID定位(jQuery锚点跳转及相关操作) 经典
    nginx配置反向代理
  • 原文地址:https://www.cnblogs.com/shishibuwan/p/10863347.html
Copyright © 2020-2023  润新知