MySQLテーブルのテキストブックの例に問題があります。 トリックは、Windows OS上で動作しますが、いくつかの奇妙な理由で、Linuxでは動作しません。私はデフォルトのエンジンを設定しようとしましたが、InnoDBは確かにボットですが、何らかの奇妙な理由のためにまだ動作していません。自己参照外部キーのMySQL - InnoDBがオン(Ubuntu 16.04)(エラーコード:1215)でも外部キーが機能しない
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)
);
あなたはそれがうまくいかないという意味ですか? – Barmar
エラー1215、外部キー制約を追加できません –
'CHECK 'はMySQLで認識されますが無視されます。 MySQLの兄弟MariaDBは、10.2.1(7/2016)以降、「CHECK」(https://mariadb.com/kb/en/sql-99/constraint_type-check-constraint/)を処理します。 https://mariadb.com/kb/en/mariadb/check-constraints-support/ –