2017-02-03 17 views
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) 
); 

當它被執行時,它會給出以下錯誤。我創建了「員工」表。在該表中它有一個自引用鍵

消息547,級別16,狀態0,第1行INSERT語句衝突 與外鍵相同的表約束 「mentor_fk」。衝突 發生在數據庫「F_T」,表「dbo.STAFF」,列'StaffID'中。 聲明已被終止。

+1

錯誤說,它從'INSERT'來了。你確定通過運行CREATE TABLE來獲得它嗎?或者你遺漏了一些代碼? –

回答

1

先創建staff表。然後添加外鍵:

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) 
); 

alter table staff 
    add constraint mentor_fk foreign key (Mentor) references staff(StaffID); 
+0

我欣賞你的快速反饋,感謝很多戈登先生。但是當我更新如下的值時, 插入到STAFF 值('Adeesha','077282018','M','1997-11-30','','5'), ('Kavitha', '0772556899','F','1956-11-28','','4'), ('Patee Aiya','0775669844','M','1954-01-04','', '''', ('Chanuka','0772562984','M','1997-02-24','','2'), ('Umesha','0723328284','F',' 1997年11月26' 日, '', '3'); 它給出了錯誤, INSERT語句與FOREIGN KEY SAME TABLE約束「mentor_fk」衝突。衝突發生在數據庫「F_T」,表「dbo.STAFF」,列'StaffID'中。 –

+0

@ArunodaGunawardanaAdee。 。 。你應該問*另一個問題。包括示例數據,表格定義,代碼和錯誤。然而,我最好的猜測是,外鍵指的是不存在的行。 –

+0

戈登先生我可以通過電子郵件聯繫嗎?因爲除非等待90分鐘,否則我無法發佈問題。你可以發送你的郵件嗎?我的郵件是[email protected]。 –

相關問題