创建触发器以更新值更新另一个表

时间:2014-10-22 18:35:07

标签: sql database oracle triggers

我有两个表TABLE_A和TABLE_B。我在TABLE_A中有一个名为ID的值。该值每30分钟由一个cron作业更新。我需要创建一个触发器,TABLE_B仅在IT被更改时才存储ID的旧值和新值。 cron作业更新TABLE_A,无论如何都无法更改。

示例:

如果ID的值从18变为19,那么它应该添加到TABLE_B。当它从18变为18时,它不应该。

我不确定我是否需要使用触发器+程序或只能触发器吗?

1 个答案:

答案 0 :(得分:1)

您可以对触发器进行编码以查看旧值和新值

CREATE OR REPLACE TRIGGER trigger_name
  AFTER UPDATE ON table_a
  FOR EACH ROW
BEGIN
  IF( :new.id != :old.id )
  THEN
    <<something changed>>
  END IF;
END;

如果id可以是NULL,那么您需要稍微复杂的条件。