【发布时间】:2017-03-13 08:48:14
【问题描述】:
create or replace
TRIGGER TR_SITECONTACT_UPDATE
AFTER UPDATE OR INSERT ON s_ct
FOR EACH ROW
DECLARE
v_SID s_ct.sid%type;
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
IF :NEW.CTID != :OLD.CTID THEN
UPDATE CT
SET lastupdatedon =sysdate,
LASTUPDATESITE=:NEW.SID
WHERE CTID = :NEW.CTID;
COMMIT;
END IF;
END;
这里可以检查 lastupdatedCOF 是否为空,然后使用更新语句,在更新行之前,我需要检查 CT 表中的 lastupdatedCOF 是否为空。 IF Null 表示我需要使用下面的更新语句
UPDATE CT
SET lastupdatedon =sysdate,
LASTUPDATESITE=:NEW.SID
WHERE CTID = :NEW.CTID;
COMMIT;
lastupdatedCOF IS NOT NULL 表示
UPDATE CT
SET lastupdatedon =sysdate,
LASTUPDATESITE=:NEW.SID,
lastupdatedCOF = NULL
WHERE CTID = :NEW.CTID;
COMMIT;
【问题讨论】:
-
你为什么大喊大叫? (为什么它在 SQL 问题中如此普遍?)
-
@Biffen 我需要检查另一个表的条件??
-
这需要大喊大叫?!你在桌子上生气吗?
-
哈哈比芬。我正在尝试实现一个需要此查询的场景..
-
编辑了您的问题,因为您似乎没有得到它。
标签: if-statement oracle11g triggers