【问题标题】:Creating AFTER INSERT TRIGGER on Oracle table在 Oracle 表上创建 AFTER INSERT TRIGGER
【发布时间】:2020-02-02 04:42:23
【问题描述】:

我不知道如何使用条件Table_1.Table_2_ID = Table_2.ID 创建AFTER INSERT TRIGGER。

CREATE OR REPLACE TRIGGER Table_2_TRG
   AFTER INSERT
   ON Table_1
   FOR EACH ROW
BEGIN
    UPDATE Table_2
    SET Col1 = '1'
    FROM (SELECT Table_2_ID FROM Table_1)
    WHERE Table_1.Table_2_ID = Table_2.ID;
END;

需要在Table_1中插入一条ID相似的记录后,更改Table_2中记录的值(Table_1中的Table_2_ID和Table_2中的ID相同)。

Table_2 中的 Col1 的类型为 VARCHAR2。

我有这段代码,但是运行语句后出现错误:

“2/5 PL/SQL:忽略 SQL 语句

4/5 PL/SQL:ORA-00933:SQL 命令未正确结束”

【问题讨论】:

    标签: oracle oracle11g database-trigger


    【解决方案1】:

    如果我猜对了,你需要这样一个WHERE 子句:

    CREATE OR REPLACE TRIGGER Table_2_TRG
       AFTER INSERT
       ON Table_1
       FOR EACH ROW
    BEGIN
        UPDATE Table_2 b
        SET b.Col1 = '1'
        WHERE b.id = :new.table_2_id;
    END;
    

    【讨论】:

      【解决方案2】:

      这将起作用:

      CREATE OR REPLACE TRIGGER Table_2_TRG
         AFTER INSERT
         ON Table_1
         FOR EACH ROW
      BEGIN
          UPDATE Table_2
          SET Col1 = '1'
          where id=:new.id;
      END;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-24
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-20
        相关资源
        最近更新 更多