0
create table STAFF
(
StaffID TINYINT IDENTITY NOT NULL,
StaffName varchar(20) NOT NULL,
Phone varchar(10) NOT NULL,
Gender char(01),
DoB date NOT NULL,
Mentor TINYINT,
Payment_ID TINYINT NOT NULL,
constraint staff_pk primary key (StaffID),
constraint staff_fk
foreign key (Payment_ID) references PAYMENT(Payment_ID),
constraint mentor_fk
foreign key (Mentor) references staff(StaffID)
);
テーブルが正常に作成されました。しかし、ときに私は、このような値を挿入するつもりです:私はスタッフテーブルを作成しました。
insert into STAFF
values ('Adeesha', '077282018', 'M', '1997-11-30', '', '5'),
('Kavitha', '0772556899', 'F', '1956-11-28', '', '4'),
('Patee Aiya', '0775669844', 'M', '1954-01-04', '', '3'),
('Chanuka', '0772562984', 'M', '1997-02-24', '', '2'),
('Umesha', '0723328284', 'F', '1997-11-26', '', '3');
は、私は次のエラーを取得する:
Msg 547, Level 16, State 0, Line 1
The INSERT statement conflicted with the FOREIGN KEY SAME TABLE constraint "mentor_fk".
The conflict occurred in database "F_T", table "dbo.STAFF", column 'StaffID'.
最初に、TINYINTはキーのための貧しい選択のように思えます。次に、先にメンターを挿入する必要があります。既にメンターを挿入していない限り、メンターが記入された人を挿入することはできません。メンターがメンターを持っている場合は、まずメンターを挿入する必要があります。 – pmbAustin