【发布时间】:2017-08-29 03:11:20
【问题描述】:
我已经创建了这两个表:
CREATE TABLE Purchase(
purchaseID SERIAL,
custName VARCHAR(30) NOT null,
PRIMARY KEY (purchaseID));
CREATE TABLE PurchasedItem(
purchaseID INT,
itemNo INT NOT NULL,
PRIMARY KEY (purchaseID, itemNo),
FOREIGN KEY (purchaseID) REFERENCES Purchase(purchaseID));
接下来我希望将数据插入到两个表中,购买项目的purchaseID外键与Purchase表中的purchaseID Serial具有相同的值。
我正在使用一个名为 PSequel 的 PostgreSQL 客户端。我尝试在客户端中首先将 AUTOCOMMIT 设置为关闭,这样我就可以在同一个事务中使用两个 INSERT 语句,但是客户端无法识别“自动提交”,所以我在终端中尝试了它,我认为它有效......无论如何,这是我试过的两个 INSERT 语句。
INSERT INTO Purchase(custName) VALUES ('Lendl');
INSERT INTO PurchasedItem(purchaseID, itemNo) VALUES (DEFAULT, 111);
commit;
但是我得到一个错误:
ERROR: null value in column purchaseID violates not-null constraint.
这是指PurchableItem 的purchaseID,因为它在运行第一个INSERT 语句时它本身可以工作。我该如何解决这个问题?
【问题讨论】:
标签: postgresql