Oracle触发器更新不同表的正确语法是什么?

时间:2012-02-21 17:14:33

标签: sql database oracle database-design

架构:分配(票号,技术pplSoft,分配日期,状态) where status eld是枚举,可以是:已分配,正在进行,委派,已关闭成功或已关闭不成功

1)每当status属性写一个名为ClosedTicket的触发器 ASSIGNMENT表的更改为“已关闭成功”或“已关闭不成功”, 它将TICKETS表的日期关闭属性的值设置为当前值 日期。

我是这样开始的吗?并在where子句中使用status ='关闭成功'或状态='关闭不成功'?

创建或替换TRIGGER ClosedTicket 更新后

1 个答案:

答案 0 :(得分:2)

这样的事情应该有用(虽然我猜测TICKETS中主键列的名称是什么)。

CREATE OR REPLACE TRIGGER ClosedTicket
  AFTER UPDATE ON assignment
  FOR EACH ROW
BEGIN
  IF( :new.status IN ('closed successful', 'closed unsuccessful' ) )
  THEN
    UPDATE tickets t
       SET date_closed = sysdate
     WHERE t.ticket_id = :new.ticket;
  END IF;
END;