【发布时间】:2017-06-07 21:25:15
【问题描述】:
我对 MySQL 表的教科书示例有疑问。 诀窍是,它可以在 Windows 操作系统上运行,但由于某些奇怪的原因,它不适用于 Linux。 我尝试配置默认引擎,它肯定是 InnoDB,但由于某种奇怪的原因它仍然不是机器人不工作。
CREATE TABLE radnik(
Mbr integer NOT NULL,
Ime varchar(20) NOT NULL,
Prz varchar(25) NOT NULL,
Sef integer,
Plt decimal(10, 2),
Pre decimal(6, 2),
God date NOT NULL,
CONSTRAINT radnik_PK PRIMARY KEY (Mbr),
CONSTRAINT radnik_FK FOREIGN KEY (Sef) REFERENCES radnik (Mbr),
CONSTRAINT radnik_CH CHECK (Plt>500)
)engine=innodb;
CREATE TABLE projekat(
Spr integer NOT NULL,
Ruk integer NOT NULL,
Nap varchar(50),
Nar varchar(50),
CONSTRAINT projekat_PK PRIMARY KEY (Spr),
CONSTRAINT projekat_FK FOREIGN KEY (Ruk) REFERENCES radnik (Mbr),
CONSTRAINT projekat_UK UNIQUE (Nap)
)engine=innodb;
CREATE TABLE radproj(
Spr integer NOT NULL,
Mbr integer NOT NULL,
Brc integer NOT NULL,
CONSTRAINT radproj_PK PRIMARY KEY (Spr, Mbr),
CONSTRAINT radproj_rad_FK FOREIGN KEY (Mbr) REFERENCES radnik(Mbr),
CONSTRAINT radproj_prj_FK FOREIGN KEY (Spr) REFERENCES projekat(Spr)
);
【问题讨论】:
-
不起作用是什么意思?
-
错误1215,无法添加外键约束
-
CHECK被 MySQL 识别,但被忽略。 MySQL 的兄弟 MariaDB 确实处理CHECK: mariadb.com/kb/en/sql-99/constraint_type-check-constraint ,但仅从 10.2.1 (7/2016) 开始;见mariadb.com/kb/en/mariadb/check-constraints-support
标签: mysql linux ubuntu foreign-keys innodb