Обсудить триггер для изменения таблицы базы данных

0

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

Create Or Replace Trigger TRG_check IN
Before insert or update
on temp_checkin
FOR each ROW
BEGIN
INSERT INTO temp_checkin_history
select * from temp_checkin
where temp_checkin.id = temp_checkin.id;
END;

Спасибо

  • 0
    Проверьте правильность написания, мой друг!
Теги:
database
triggers
grant

1 ответ

1
Лучший ответ

Написание запроса, такого как INSERT INTO SELECT * без указания столбцов, является плохой практикой. Кроме того, нет необходимости выбирать из таблицы запуска триггера, как вы делаете. Вместо этого используйте ключевое слово :NEW и укажите все столбцы. Вы можете написать свой триггер как

CREATE OR REPLACE TRIGGER trg_check BEFORE
    INSERT OR UPDATE ON temp_checkin
    FOR EACH ROW
BEGIN
    INSERT INTO temp_checkin_history (
        id,
        col1,
        col2,
        col3
    ) --other columns
     VALUES (
        :new.id,
        :new.col1,
        :new.col2,
        :new.col3
    ); -- other columns prefixed by :NEW

END;
  • 0
    извините, сэр, это работает очень благодарно вам
  • 0
    я получил то, что хочу, спасибо, сэр
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню