2011-11-24 41 views
4

我試圖記錄添加到下面兩個表,不能添加或更新子行

CREATE TABLE customer 
(Custno  CHAR(3), 
Custname VARCHAR(25) NOT NULL, 
Custstreet VARCHAR(30) NOT NULL, 
Custcity VARCHAR(15) NOT NULL, 
Custprov VARCHAR(3) NOT NULL, 
Custpcode VARCHAR(6) NOT NULL, 
Disc  DECIMAL(3,1), 
Balance DECIMAL(7,2), 
Credlimit DECIMAL(5), 
Srepno  CHAR(3), 
CONSTRAINT pkcustno PRIMARY KEY (Custno), 
CONSTRAINT fksrepno FOREIGN KEY (Srepno) REFERENCES salesrep(Srepno) 
); 


CREATE TABLE orders 
(Orderno CHAR(5) UNIQUE NOT NULL, 
Orderdate DATE, 
Custno CHAR(3) NOT NULL, 
CONSTRAINT fkordercust FOREIGN KEY (Custno) REFERENCES customer (Custno) 
); 

當加入這樣的,

INSERT INTO orders(Orderno, Orderdate, Custno) VALUES('14587','2011-11-09', '125'); 
INSERT INTO orders(Orderno, Orderdate, Custno) VALUES('11547','2011-11-07', '125'); 

我得到的,「不能添加或更新子行:外鍵約束失敗(shorders,CONSTRAINT fkordercust FOREIGN KEY(Custno)REFERENCES customerCustno)) 「 桌子有問題嗎?

回答

7

您沒有與CustNo = '125'的客戶。因此,Foreign key失敗。您正試圖爲不存在的客戶下單,數據庫將引發錯誤。

1

你有一個125的客戶?

3

您是否確實客戶號爲125的客戶?我想不是。錯誤消息告訴你究竟是有什麼問題。

這確保沒有訂單可以爲不存在的客戶創造正受到侵犯外鍵約束:

CONSTRAINT fkordercust FOREIGN KEY (Custno) REFERENCES customer (Custno) 

創建客戶行對於客戶第一那麼你可以添加命令行的心的內容。

3

您的表格沒有問題,您只是沒有在數據庫中擁有CustNo'125'的客戶。

3

您已經創建了客戶表的外鍵,但(顯然)沒有插入任何數據。

相關問題