delete from tb where id = @id;insert into tb (...) values (...); [解决办法] oracle 有merge语句可以实现你的要求 没有该行数据则插入,有该行数据则更新 [解决办法]
[解决办法] 直接在触发器中判断就行了 [解决办法] create or replace trigger AK on tablename before insert is var1 tabename.column%type;----关键字来判断记录是否存在 var2 tablename%rowtype;----如果存在则把插入的数据放在记录中,修改数据时仍要用 varflag number;---标示是否表中已经存在 begin select 关键字 into var form :new;---得到插入数据的关键字 select n.* into var2 from :new--得到插入数据 select nvl(max(1),0) into varflag from tablename where tablename.column=关键字;--判断表中存在 if varflag=1 then update tablename set tablename.columns=var2 where tablename.column=关键字;修改表中存在的数据行 end if end [解决办法] 顶2楼,题外话(我觉得这个需求应该在应用层面实现,当然如果你的数据库环境非常牛x,资源多的浪费,你可以考虑在触发器里面实现)。