我正在尝试将记录添加到下面的两个表中,
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' );
我知道,“无法添加或更新子行:外键约束失败(sh
。orders
,CONSTRAINT fkordercust
FOREIGN KEY(Custno
)参考customer
(Custno
))
“
桌子有问题吗?
答案 0 :(得分:7)
您没有CustNo = '125'
的客户。因此,Foreign key
失败。您正在尝试为不存在的客户下订单,数据库会抛出错误。
答案 1 :(得分:3)
您实际拥有客户编号为125的客户行吗?我想不是。错误消息告诉您完全出了什么问题。
确保不会为不存在的客户创建订单的外键约束被违反:
CONSTRAINT fkordercust FOREIGN KEY (Custno) REFERENCES customer (Custno)
首先创建客户行 然后您可以将该客户的订单行添加到您的内容中。
答案 2 :(得分:3)
您的表格很好,您在数据库中没有CustNo为“125”的客户。
答案 3 :(得分:3)
您已经为customer表创建了一个外键,但(显然)没有插入任何数据。
答案 4 :(得分:1)
您的客户数量是125吗?