0

我在这个问题上一头雾水,因为我对数据库知识知之甚少,但是 RDBMS 触发器可以用常量和条件分割,例如,在同一个触发器中使用多个“WHEN”语句吗?我被要求研究这个话题,坦率地说,我什至不知道从哪里开始。我没有任何“真实”代码要发布,只是从具有更多数据库经验的用户那里寻找一些理论见解。提前感谢您的洞察力。

示例代码:

 CREATE TRIGGER REORDER
 AFTER UPDATE OF ON_HAND, MAX_STOCKED ON PARTS
 REFERENCING NEW AS N
 FOR EACH ROW
 WHEN (N.ON_HAND < 0.10 * N.MAX_STOCKED)
 BEGIN ATOMIC
 WHEN (N.ON_BCK_ORDR < N.CUST_ORDERED)
 VALUES(ISSUE_SHIP_REQUEST(N.MAX_STOCKED - N.ON_HAND, N.PARTNO));
 END

;

4

2 回答 2

0

不知道你在问什么。我认为您需要了解创建触发器的语法。尝试谷歌搜索 oracle、MSSQL、MySQL、PostgreSQL 数据库的“创建触发器”语法。

于 2012-08-16T19:26:16.593 回答
0

在 CASE 语句中使用时,触发器可以包含多个“WHEN”谓词,如下所示:

CREATE TRIGGER trg
BEFORE UPDATE OF dept_salary
ON employee_wages

BEGIN
   CASE
      WHEN INSERTING THEN
         DBMS_OUTPUT.PUT_LINE('Inserting');
      WHEN UPDATING ('salary') THEN
         DBMS_OUTPUT.PUT_LINE('UPDATING SALARY');
      WHEN DELETING THEN
         DBMS_OUTPUT.PUT_LINE('DELETING');
   ENDCASE
END
于 2012-08-21T13:40:03.040 回答