私はMySqlの初心者です。次の自己参照テーブルを作成したいと思います。
EMPLOYEE
+-----+------+------+
|Name |E-ID |M-ID |
+-----+------+------+
|ABC |12345 |67890 |
|DEF |67890 |12345 |
+-----+------+------+
次のコマンドを使用します。
CREATE TABLE EMPLOYEE (
NAME VARCHAR(20) ,
E-ID CHAR(6) NOT NULL ,
M-ID CHAR(6) NULL ,
PRIMARY KEY (E-ID) ,
FOREIGN KEY (M-ID) REFERENCES EMPLOYEE(E-ID)
);
今私の問題は、2つのレコードをどのように入力するのですか?つまり、外部制約が失敗するたびに。入力してみました:
INSERT INTO EMPLOYEE VALUES('12345','67890');
私も試しました:
INSERT INTO EMPLOYEE VALUES('12345','67890'),('67890','12345');
上記のコマンドは両方とも失敗します。エラーを与える:
エラー1452(23000):子行を追加または更新できません:外部キー制約が失敗しますBLAH BLAH
皆さん、実際、私は次のpptのスライド番号25に示されているテーブルを実装しようとしていました:リレーショナルデータモデルとリレーショナルデータベースの制約
制約は次のとおりです。
- SUPERSSN Of EMPLOYEEは、EMPLOYEEのSSNを参照します。
- DEPARTMENTのMGRSSNは、EMPLOYEEのSSNを参照します。
- EMPLOYEEEのDNOは、DEPARTMENTのDNumberを参照します。
テーブルを作成した後、レコードを追加するにはどうすればよいですか?外部キー制約は常に失敗します。