我正在尝试创建一个使用 PL/SQL 更新另一个表的触发器,但我遇到了一些问题。(我已阅读此内容,但没有多大帮助)。
这是我的情况,我可以说两张桌子:
客户表
CustomerID号 主键,ItemsDelivered号
项目表
CustomerID编号、ItemID编号、ItemDelivered Varchar(15)
假设当有人下订单时,我们在 Items 表中有一条新记录,如下所示:
| CustomerID | ItemID | ItemDelivered |
| 1 | 1 | False |
我想要一个触发器,只要有人将 ItemDelivered 列更新为“True”,就会引发 ItemsDelivered 计数器。
create or replace Trigger UpdateDelivered
After Update On Items For
Each Row
Declare
Counter Customers.ItemsDelivered%Type;
Begin
If (:Old.ItemDelivered ='False' And :New.ItemDelivered='True') Then
Select ItemsDelivered into Counter From Customers where CustomerdID =:New.CustomerID;
Update....
end if;
END;
这是我的问题,如果仅更新 ItemDelivered 列,则没有 New.CustomerID!
有什么方法可以获取刚刚更新的行的 CustomerID?(我试图加入插入的虚拟表,但我收到表不存在的错误)