ORACLE SQL状态检查触发器

时间:2015-12-12 23:41:32

标签: sql oracle12c

我想创建一个触发器,当在ORDERS表中插入新订单时,触发器会更新CUSTOMER表中客户的状态级别,具体取决于他们所做的订单数量。如果客户有0个订单,他的状态级别为“新”,否则如果他有超过1个,则他是“标准”客户。

如果我手动添加customer_no,则下面的触发器有效:

create or replace TRIGGER STATUS_CHECK
AFTER INSERT ON ORDERS
DECLARE
  n INT;
BEGIN
  SELECT COUNT(ORDER_NO)
  INTO n 
  FROM ORDERS
  INNER JOIN CUSTOMER
  ON CUSTOMER.CUSTOMER_NO = ORDERS.CUSTOMER_CUSTOMER_NO
  WHERE CUSTOMER.CUSTOMER_NO = '01';

  IF(n > 1) THEN
  UPDATE CUSTOMER
  SET CUSTOMER.STATUS_LEVEL = 'STANDARD'
  WHERE CUSTOMER.CUSTOMER_NO = '01';
  END IF;
END;

0 个答案:

没有答案