数据库高手指点 写一个触发器(oracle)
写一个触发器实现对表product(id,price)插入时如果对应的id存在就更新这条数据如果id不存在就插入这条数据...
写一个触发器 实现对表product (id,price)插入时 如果对应的id存在 就更新这条数据
如果id不存在 就插入这条数据 展开
如果id不存在 就插入这条数据 展开
2个回答
展开全部
create or replace trigger Tri_product_insert
before insert on product
for each row
declare
v_in number;
begin
v_in := 0;
select count(1) into v_in from product where id = :new.id;
if v_in <> 0 then
delete from product where id = :New.id;
end if;
end Tri_product_insert;
我测试了几下,可以的,原理是插入后,如果存在这个id,那么就删除这个id的所有数据,然后就插入了这条id的记录,就相当于更新了。
这里面是不能直接使用update来更新的。
希望可以帮助到你,望采纳。
before insert on product
for each row
declare
v_in number;
begin
v_in := 0;
select count(1) into v_in from product where id = :new.id;
if v_in <> 0 then
delete from product where id = :New.id;
end if;
end Tri_product_insert;
我测试了几下,可以的,原理是插入后,如果存在这个id,那么就删除这个id的所有数据,然后就插入了这条id的记录,就相当于更新了。
这里面是不能直接使用update来更新的。
希望可以帮助到你,望采纳。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询