我想创建一个触发器,当在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;