建立了触发器后,不能保存数据,请教.

pancikang 2005-01-05 11:31:21
我有一个表test.表中有三个字段:a,b,c.
字段a,b,c的内容是在前台输入的.
我想建立一个触发器,实现如下的功能.
如果a>0并且b>0,那么c=a*b.
否则,c=前台输入的数值.
也就是说,如果a>0并且b>0,c是通过a*b计算出来的.
否则,c取前台输入的数值.
我写的触发器如下:但我输入的数值,满足a>0并且b>0时,
可以保存.否则,不能保存.请大家看看.是否是我的触发器写错了.
谢谢。
CREATE OR REPLACE TRIGGER test_TRIG
BEFORE INSERT OR UPDATE ON test FOR EACH ROW
DECLARE
BEGIN
if :new.a>0 and :new.b>0 then
:new.c:=:new.a*:new.b;
end if;
END;
...全文
191 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yxxx 2005-01-05
  • 打赏
  • 举报
回复
我试过了,楼主写的是对的
shhboy 2005-01-05
  • 打赏
  • 举报
回复
???
yxxx 2005-01-05
  • 打赏
  • 举报
回复
(:new.a>0 and :new.b>0)
加个括号试试
yxxx 2005-01-05
  • 打赏
  • 举报
回复
严重错误,不好意思-_-!
yxxx 2005-01-05
  • 打赏
  • 举报
回复
before换成after,new换成old,
试试
Adele007 2005-01-05
  • 打赏
  • 举报
回复
这样的功能写在触发器里是不是浪费了,你可以把判断放在前台呀,通过输入的a,b值计算c值,然后再用insert语句向数据库中插入数据
ORARichard 2005-01-05
  • 打赏
  • 举报
回复
这个触发器没问题的,看看是不是还有其它触发器。或别的原因

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧