【发布时间】:2016-04-20 18:09:49
【问题描述】:
我正在尝试将purchaseOrder 表中的一些详细信息插入到poPayment 表中,然后在purchaseorder 上插入,首先我想要
purchaseorder.purchaseorderid 添加到 popayment.purchaseorderid
完成这项工作后,我想展开触发器
这是采购订单表;
CREATE TABLE purchaseOrder
(
purchaseOrderid NUMBER (6) NOT NULL,
staffid NUMBER (6),
rawMaterialid2 NUMBER (6) NOT NULL,
supplierContactid2 NUMBER (6),
orderDate DATE NOT NULL,
dueDate DATE,
pricePerUnit NUMBER (7,2),
qty NUMBER,
total NUMBER (7,2),
CONSTRAINT purchaseOrderid PRIMARY KEY(purchaseOrderid)
);
这里是采购订单付款表;
CREATE TABLE poPayment
(
poPaymentid NUMBER (6) NOT NULL,
purchaseOrderid NUMBER (6) NOT NULL,
staffid NUMBER (6) NOT NULL,
paymentDate DATE,
amountPaid NUMBER (7,2),
qtyOrdered NUMBER (6),
qtyDelievered NUMBER (6),
invoiceAmount NUMBER (6),
dateDelivered DATE,
CONSTRAINT pk_poPaymentid PRIMARY KEY(poPaymentid)
);
这是我尝试过的触发器
CREATE OR REPLACE TRIGGER createPOpayment_trg
ON purchaseorder
AFTER INSERT
AS BEGIN
INSERT INTO popayment (purchaseorderid)
SELECT
purchaseorder.purchaseorderid
FROM purchaseorder
WHERE purchaseorder.purchaseorderid = popayment.purchaseorderid
END
谢谢 布赖恩
【问题讨论】:
-
当您尝试创建该触发器或在
purchaseorder表中插入一行时发生了什么?您是否收到错误,或者不是您预期的结果?在创建采购订单时而不是在实际付款时创建付款记录真的有意义吗? -
当我尝试运行触发器时,我收到错误:ORA-04071:缺少 BEFORE、AFTER 或 INSTEAD OF 关键字。有一个单独的付款表,因为他们可以在交货后付款