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