create or replace
trigger trig_number
before INSERT ON bill
for each row
declare
pragma autonomous_transaction;
sbid NUMBER;
begin
select count(*) into sbid from bill where bid=:new.bid and food_id=:new.food_id;
if sbid<>0 then
update bill set quantity=quantity+:new.quantity
where food_id=:new.food_id and bid=:new.bid;
elsif sbid=0 then
null;
end if;
end;存在问题:插入数据后,原有数据会更新,但会重复插入一条数据
我想请教的是:如何在条件sbid<>0成立时,完成更新并且能取消插入操作触发器
trigger trig_number
before INSERT ON bill
for each row
declare
pragma autonomous_transaction;
sbid NUMBER;
begin
select count(*) into sbid from bill where bid=:new.bid and food_id=:new.food_id;
if sbid<>0 then
update bill set quantity=quantity+:new.quantity
where food_id=:new.food_id and bid=:new.bid;
elsif sbid=0 then
null;
end if;
end;存在问题:插入数据后,原有数据会更新,但会重复插入一条数据
我想请教的是:如何在条件sbid<>0成立时,完成更新并且能取消插入操作触发器
解决方案 »
- Oracle 11g,数据库监听连接很慢问题咨询
- oracle数据表的分组转置
- 请教一个sql语句
- 游标老是被占满请大家帮忙(已经查阅前面的帖子,没有雷同的!)
- oracle启动问题
- 请教在sqlplus输入何命令可以让数据库做checkpoint?
- 大侠啊,你就进来看看啊,小弟已快三天了都没解决这问题啊。求各位了啊!
- 用imp导入数据时出现IMP-00013错误,求救!
- !!!求救:我有两个表(苹果表和梨子表);我现在想得到水果总数视图.不知创建这样的视图的SQL语句怎么写????!!!!
- 帮忙修改这段ASP调用ORACLE的输出值。
- 32位win7用哪个版本的oracle
- !!!!!!小白问题!!!!!!! 求解释
把原insert语句改成merge,,触发器都可以不用了
update bill set quantity=quantity+:new.quantity
where food_id=:new.food_id and bid=:new.bid;
代码段后面再写个delete语句删除掉重复记录吧