2016-06-02 1 views
-2

ИМЯ ТАБЛИЦЫ: ТЕСТКак получить другое значение столбца из той же строки, если мы обновим любой столбец этой строки в триггере oracle?

КОЛОННА: ID, NAME

Я использую базу данных ORACLE.

Я написал один триггер после обновления.

Если я обновляю значение столбца имени, то я хочу получить идентификатор этого обновленного имени.

Пожалуйста, дайте мне какое-либо предложение.

Спасибо ....

+0

Что вы хотите сделать с удостоверением этого обновленного имени? Вы просто используете это в другом месте вашего триггера? Что делает ваш триггер в данный момент (пожалуйста, покажите свой код) и что вы хотите сделать? –

ответ

0

вы можете использовать :OLD проверку ниже пример

CREATE OR REPLACE TRIGGER EX_TRIGGER 
AFTER UPDATE ON TAB1 
BEGIN 
    SET VAR = :OLD.ID 
END; 
0

Oracle Setup:

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; 

Query:

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 
Смежные вопросы