在 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;
我不知道如何使用条件 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;