在 Oracle table 上创建 AFTER INSERT TRIGGER

Creating AFTER INSERT TRIGGER on Oracle table

我不知道如何使用条件 Table_1.Table_2_ID = Table_2.ID .[=12 创建 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_ID 在 Table_1 和 ID 在Table_2 是相同的)。

Table_2 中的 Col1 类型为 VARCHAR2。

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

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

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

如果我没看错,你需要这样一个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;

这会起作用:

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;