Как отключить триггер в Oracle

Kak Otklucit Trigger V Oracle



Триггеры базы данных или триггеры для краткости относятся к хранимым процедурам, которые выполняются в ответ на действие события в данном объекте базы данных.

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







Большинство реляционных баз данных поддерживают использование триггеров для выполнения автоматизированных задач, таких как предотвращение недопустимых транзакций, регистрация событий, выборка и запись статистики доступа к таблицам и т. д.



Созданный триггер всегда запускается всякий раз, когда происходит связанное с ним событие. Однако вы можете захотеть временно или навсегда запретить выполнение триггера. Здесь в игру вступает функция отключения триггера.



В этом посте речь пойдет о быстрых и простых шагах по отключению триггера в базе данных Oracle. Если вы новичок в триггерах Oracle и хотели бы узнать, как их создать, перейдите по следующей ссылке:





2АФФ476А152К4ЭФ931589К8К07786ДД4Д510К33К

Создание тестового триггера

Прежде чем мы обсудим методы отключения триггера, давайте настроим пример триггера в демонстрационных целях.



ПРИМЕЧАНИЕ : В этом разделе не рассматривается, как определить или использовать триггеры базы данных.

Мы хотим создать триггер, который регистрирует активность пользователя после операции удаления. Например, предположим, что у нас есть таблица sample_data с такой информацией:

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

Схема таблицы следующая:

создать таблицу sample_data_logs(
идентификационный номер,
имя_имя_varchar2(50),
ip_адрес varchar2 (20),
btc_address varchar2 (50),
кредитная_карта varchar2 (50),
идентификатор varchar2(40),
дата удаления_дата,
удалено_от varchar2 (20)
);

Далее нам нужно определить триггер, который выполняется после события удаления. Определение триггера представлено следующим образом:

создать или заменить триггер log_user
после удаления
на sample_data
для каждой строки
объявить
action_username varchar2 (20);
начинать
выберите пользователя в action_username из двойного;
вставить в sample_data_logs
значения (:OLD.id,
:OLD.first_name,
:OLD.ip_адрес,
:OLD.btc_адрес,
:OLD.credit_card,
:OLD.идентификатор,
системная дата,
действие_имя_пользователя);
конец;

Чтобы протестировать триггер, давайте выполним операцию удаления из таблицы sample_data, как показано ниже:

удалить из sample_data, где id = 1;

Наконец, мы можем проверить таблицу журналов, чтобы убедиться, что операция удаления была записана:

выберите * из sample_data_logs;

Вывод:

Как мы видим, в таблице есть запись о предыдущих данных перед удалением, а также имя пользователя, выполнившего действие по удалению, и время удаления.

В следующих разделах мы покажем, как отключить предыдущий триггер. Прежде чем сделать это, убедитесь, что ваш целевой триггер работает и у вас есть достаточные разрешения для его включения или отключения.

Отключить триггер с помощью PL/SQL

Первый и самый простой способ отключения триггера — использование оператора SQL. К счастью, Oracle предоставляет нам оператор ALTER TRIGGER, синтаксис которого выглядит следующим образом:

ALTER TRIGGER имя_триггера DISABLE;

Например, чтобы отключить триггер log_user, который мы создали ранее, мы можем запустить следующее:

изменить триггер log_user отключить;

После выполнения триггер больше не будет хранить копию старых данных и пользователя, выполнившего удаление, как показано ниже:

удалить из sample_data, где id = 2;

Проверьте журналы:

выберите * из sample_data_logs;

Вывод:

Как мы видим, у нас осталась только одна запись.

Отключить триггер с помощью SQL Developer

Мы можем использовать утилиту SQL Developer, чтобы отключить триггер в графическом интерфейсе. Начните с входа в SQL Developer.

Перейдите в раздел «Триггеры»:

Разверните каталог триггеров и найдите триггер, который вы хотите отключить. Щелкните правой кнопкой мыши имя триггера и выберите «Отключить».

Подтвердите операцию «Отключить» и нажмите «Применить».

После отключения Oracle делает триггер серым, указывая на то, что он неактивен.

Заключение

В этой статье показано, как отключить триггер Oracle с помощью операторов PL/SQL и утилиты SQL Developer.