【发布时间】:2019-06-26 04:23:39
【问题描述】:
我正在尝试创建这样的表
CREATE TABLE department(d_name varchar(20) NOT NULL,
e_ssn int,
d_no int primary key,
mng_ssn int,
CONSTRAINT `fk_mng_ssn`
FOREIGN KEY (mng_ssn) REFERENCES Employee (ssn)
ON DELETE null) ENGINE = InnoDB;
create table Employee(f_name varchar(20) not null,
ssn int primary key,
sex varchar(5),
d_no int,
super_ssn int,
CONSTRAINT `fk_d_no`
FOREIGN KEY (d_no) REFERENCES department (d_no)
ON DELETE null) ENGINE = InnoDB;
create table dependant(dependant_name varchar(20) not null,
e_ssn int,
sex varchar(5),
CONSTRAINT `fk_e_ssn`
FOREIGN KEY (e_ssn) REFERENCES Employee (ssn)
ON DELETE CASCADE,
primary key (e_ssn,dependant_name)) ENGINE = InnoDB;
这里所有的表都包含外键,这就是我在 mariadb 中得到 errno: 150“外键约束不正确形成”的原因。
【问题讨论】:
-
尝试分别运行每一个。然后,您可以将错误隔离到给定的创建语句并处理格式错误的 DDL 语法。
-
这只是发布的方式,还是引用的约束名称使用了错误的引号?
-
引用的约束名称不是问题
标签: sql foreign-keys mariadb