【发布时间】:2014-09-21 07:37:31
【问题描述】:
我创建了 3 个表,其名称是客户、付款和订单。它们具有相同的列名称 customerNumber。customerNumber 是 customers 的主键strong> 表和 payments 和 orders 表的外来。现在我想创建一个触发器,其工作是在更新客户表中的 customerNumber 之前更新 payment 和 orders 表中的 customerNumber .
我的代码在这里:
create or replace trigger customers_update
before update of customerNumber on customers
for each row
begin
update payments,orders
set
payments.customerNumber = :new.customerNumber
orders.customerNumber = :new.customerNumber
where (payments.customerNumber = :old.customerNumber)
and
(orders.customerNumber = :old.customerNumber);
end;
/
但它显示了一些这样的问题
第 2 行错误:PL/SQL:SQL 语句被忽略
- 创建或替换触发器customers_update
- 在更新客户的 customerNumber 之前
- 每一行
- 开始
所以我的问题是如何解决问题?
【问题讨论】:
-
第 2 行实际上是
update payments,orders。触发器的 PL/SQL 实现块(在本例中)以begin开头。