oracle数据库写一个触发器: 对表table1插入数据后,将本条新插入数据的字段text1置为空

create or replace trigger tri_table1

AFTER INSERT ON table1

FOR EACH ROW

BEGIN
UPDATE table1 t SET t.text1='' WHERE t.billid=:new.Billid;
END ;

这样写在新插入数据时提示“table1发生了变化, 触发器/函数不能读它”
最新回答
钢铁不是铁

2025-02-25 02:02:08

在insert into语句中添加指定的字段即可。
如以下数据:
test1表中:

test表与test1表结构相同,但目前无数据,现在要求将test1中的id插入到test中,不处理name字段,可用如下语句:
1
2
insert into test(id) select id from test1;
commit;
痘肤西施

2025-02-25 04:31:18

注意行级触发器不能读或者写触发器所作用的基表,会发生错误代码ORA-04091,你可以创建一个跟table1表结构一样的临时表table2,然后写一个触发器作用于这个table2上,对table2插入数据后,触发触发器来插入table1的字段。