oracle触发器,往表1(a,b,c)中插入一条数据,若已存在则更新,否则则直接插入

 我来答
匿名用户
2016-06-16
展开全部
可以使用insert触发器

create trigger tgr_tablename_insert
on tablename
for insert --插入触发
as
declare @num int
select @num = count(1) from tablename tb where tb.a = inserted.a and tb.b = inserted.b and tb.c = inserted.c
if @num > 0
begin
insert.......

end
else
begin
update....

end
go
没有测试下,不知道对不对,你可以看着修改下,用的是sqlserver的语法
追问

这是我写的,但是报错,

[Error Code: 4091, SQL State: 42000]  ORA-04091: 表 CETC.RPT_WEIGHTEMPLATES 发生了变化, 触发器/函数不能读它

ORA-06512: 在 "CETC.AAA_DEL_EMPLATES", line 4

ORA-04088: 触发器 'CETC.AAA_DEL_EMPLATES' 执行过程中出错

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式