当前位置:首页 > 数据库 > Oracle管理

新手上路,触发器的写法

优良自学吧提供新手上路,触发器的写法,新手上路,求一个触发器的写法本帖最后由 lp0301 于 2014-08-05 09:27:39 编辑 现有一个表emp,里面有a,b,c,d四个字段,d是主键。 现在我要写个触发器,达到下面这个效果: 当emp的d列的a字段更新成1时,更新

新手上路,求一个触发器的写法
本帖最后由 lp0301 于 2014-08-05 09:27:39 编辑
现有一个表emp,里面有a,b,c,d四个字段,d是主键。
现在我要写个触发器,达到下面这个效果:

当emp的d列的a字段更新成1时,更新d列b=d列c,然后更新d列c=‘’。

请问各位大神,这个触发器怎么写?

------解决方案--------------------
引用:
现有一个表emp,里面有a,b,c,d四个字段,d是主键。
现在我要写个触发器,达到下面这个效果:

当emp的d列的a字段更新成1时,更新d列b=d列c,然后更新d列c=‘’。

请问各位大神,这个触发器怎么写?

当emp的d列的a字段更新成1时,更新d列b=d列c,然后更新d列c=‘’。
这句啥意思,没看懂

访问原值用 :old.xxx
访问新值用 :new.xxx
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

现有一个表emp,里面有a,b,c,d四个字段,d是主键。
现在我要写个触发器,达到下面这个效果:

当emp的d列的a字段更新成1时,更新d列b=d列c,然后更新d列c=‘’。

请问各位大神,这个触发器怎么写?

当emp的d列的a字段更新成1时,更新d列b=d列c,然后更新d列c=‘’。
这句啥意思,没看懂

访问原值用 :old.xxx
访问新值用 :new.xxx


就是更新 d行的a=1后,触发更新 d行的b=d行的c 然后更新d行c=‘’

举例说明 emp表现有3行数据
a      b     c     d
2            c1   001
2            c2   002
2            c3   003

这时我做了一个更新 把 d=002 的a 更新成了1,现要得到这个结果
a      b      c     d
2             c1    001
1     c2            002
2             c3    003

当然这个可以直接用sql实现,但是我程序不能修改了 只能做个触发器补充了


触发器不能直接对同一个表进行操作,可以用视图或临时表来实现

(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢