SQL触发器,当表中有新行插入时,则立即更新该行的某列值
答案:4 悬赏:20 手机版
解决时间 2021-03-23 23:46
- 提问者网友:斑駁影
- 2021-03-23 12:25
SQL触发器,当表中有新行插入时,则立即更新该行的某列值
最佳答案
- 五星知识达人网友:迟山
- 2021-03-23 13:16
create or replace trigger test_trigger
before insert on test for each row
declare
begin
:new.c:=:new.c+1;
end; 这个触发器可以实现你要的功能,已经测试
before insert on test for each row
declare
begin
:new.c:=:new.c+1;
end; 这个触发器可以实现你要的功能,已经测试
全部回答
- 1楼网友:不如潦草
- 2021-03-23 14:15
create trigger tr_test
on test
after insert
as
update test set c=c+1 where a in(select a from inserted)
on test
after insert
as
update test set c=c+1 where a in(select a from inserted)
- 2楼网友:千杯敬自由
- 2021-03-23 14:07
create or replace trigger tr_test before insert on test for each rowdeclarebegin :new.c:= :new:c+1;end ;
楼上的回答不正确,因为在插入之后(未提交)再次进行修改本行记录,会提示错误。如果非要在插入之后在修改的话,那么可以用自治事务来实现,但是我还是觉得在插入之前更新插入的值更好,不用插入、修改。追问kgp742631你的意见非常好,在插入之前就更改值确实更好。但是你的语句不能成功的运行,会出现错误“关键字OR附近有语法错误”追答因为快下班了,代码手动输入了,rowdeclarebegin 中间有空格 row、declare、begin 有空格。建议好好看看文档,大家帮你的只能是思想问题。
楼上的回答不正确,因为在插入之后(未提交)再次进行修改本行记录,会提示错误。如果非要在插入之后在修改的话,那么可以用自治事务来实现,但是我还是觉得在插入之前更新插入的值更好,不用插入、修改。追问kgp742631你的意见非常好,在插入之前就更改值确实更好。但是你的语句不能成功的运行,会出现错误“关键字OR附近有语法错误”追答因为快下班了,代码手动输入了,rowdeclarebegin 中间有空格 row、declare、begin 有空格。建议好好看看文档,大家帮你的只能是思想问题。
- 3楼网友:神的生死簿
- 2021-03-23 13:33
用 instead of 触发器
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯