回 帖 发 新 帖 刷新版面

主题:帮忙写触发器

各位好,请高手帮忙写触发,表结构如下:
  
  A表:tz_no  qty_ml
      001        150
      002        140
  B表:tz_no    qty   ut_qty    qty_ml
      001      500    2        250
      001      450    3        150
      002      600    3        200
      002      560    4        140   
要求触发器要实现如下功能:
   1. B表每次更新qty时自动套用公式:qty=qty/ut_qty
  2.把B表中具有相同tz_no,不同qty_ml且qty_ml是最小值回写A表中的qty_ml,条件是A.tz_no=b.tz_no(触发器执行结果如 A.qty_ml)

回复列表 (共4个回复)

沙发

1. B表每次更新qty时自动套用公式:qty=qty/ut_qty
======================
应该是qty_ml=qty/ut_qty吧?
如果是的话,不用触发器,将qty_ml改为计算列即可


2.把B表中具有相同tz_no,不同qty_ml且qty_ml是最小值回写A表中的qty_ml,条件是A.tz_no=b.tz_no(触发器执行结果如 A.qty_ml)
======================
也不用触发器,用查询即可实现

板凳


create or replace trigger trig1_B  before update on B
for each row 
begin
    :new.qty_ml = :new.qty / :new.ut_qty; 

    update A set qty_ml = :new.qty_ml 
    where tz_no = :new.tz_no and qty_ml > :new.qty_ml; 

end trig1_B;

这是达梦SQL的语法, 应该和oracle兼容的

3 楼

达梦是国产的数据库吧,楼上好样的,支持国产!

4 楼

过奖了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册