我想创建触发器,但我不知道该怎么做。下面是示例

I want to create trigger but I dont know how to do that. Below is the sample

我想创建触发器,但我不知道该怎么做。以下是示例:

CREATE OR REPLACE TRIGGER checkDuration
   after UPDATE on comm_shipping
   FOR EACH ROW
DECLARE
   quantity NUMBER;
BEGIN
   SELECT * FROM comm_orders c
      WHERE C.ORDER_ID = :new.order_id 
      AND c.quantity = 1;
   IF quantity=NULL THEN
      RAISE_APPLICATION_ERROR('no more items');
   END IF;
EXCEPTION
   WHEN NO_DATA_FOUND THEN
      NULL;
END;

尝试以下操作(我想你的 DBMS 是 OracleDB2 因为 RAISE_APPLICATION_ERROR ):

CREATE OR REPLACE TRIGGER checkDuration
AFTER UPDATE ON comm_shipping
FOR EACH ROW
DECLARE
   quantity NUMBER;
BEGIN
   SELECT c.quantity
     INTO quantity   -- this part is missing
     FROM comm_orders c
    WHERE c.order_id = :new.order_id;

    IF quantity is NULL THEN 
       RAISE_APPLICATION_ERROR(-20001,'no more items'); -- you need a code 
                                                        -- between -20000 and -20999
    END IF;
   EXCEPTION WHEN NO_DATA_FOUND THEN NULL;
END;