表名:TEST
COLUMNS:ID,NAME
我正在使用ORACLE数据库。
我在更新后写了一个触发器。
如果我更新名称列值,那么我想获得该更新名称的ID。
请给我任何建议。
...谢谢
答案 0 :(得分:0)
您可以使用:OLD
查看以下示例
CREATE OR REPLACE TRIGGER EX_TRIGGER
AFTER UPDATE ON TAB1
BEGIN
SET VAR = :OLD.ID
END;
答案 1 :(得分:0)
Oracle安装程序:
CREATE TABLE table_name ( id INT, name VARCHAR2(20) );
CREATE TABLE table_name_log( prev_id INT, id INT, update_date DATE );
CREATE TRIGGER log_id
AFTER UPDATE
ON table_name
FOR EACH ROW
BEGIN
IF :old.name <> :new.name THEN
INSERT INTO table_name_log (
prev_id, id, update_date
) VALUES (
:old.id, :new.id, SYSDATE
);
END IF;
END;
/
INSERT INTO table_name
SELECT 1, 'Alf' FROM DUAL UNION ALL
SELECT 2, 'Ben' FROM DUAL UNION ALL
SELECT 3, 'Carl' FROM DUAL;
<强>查询强>:
UPDATE table_name SET name = 'Ann' WHERE id = 1;
SELECT * FROM table_name_log;
<强>输出强>
PREV_ID ID UPDATE_DATE
------- -- -------------------
1 1 2016-06-02 09:56:23