и посмотреть медиа
Análisis de datos - DA SQL
и посмотреть медиа
Análisis de datos: SQL, Python.
Análisis de datos: SQL, Python.
bot de IA para clonar texto a voz y voz en Telegram. Cree audio utilizando la red neuronal de forma rápida y fácil.
Acerca del análisis de datos: bases de datos, SQL, Python y más para analistas.
Триггеры в SQL Триггеры похожи на специальные хранимые процедуры, которые автоматически выполняются при наступлении определенных событий в базе данных. Могут срабатывать перед, после или вместо выполнения операции. Как и хранимая процедура, триггер хранится в базе данных и может вызываться многократно. Но при этом, в отличие от хранимой процедуры, триггер можно включать и отключать, но нельзя вызывать его явным образом. Можно задать триггеры, которые будут срабатывать при изменении данных (INSERT, UPDATE, DELETE), а также при изменении структуры БД и при возникновении системных событий. Общий вид запроса на создание триггеров: CREATE [OR REPLACE] TRIGGER trigger_name {BEFORE | AFTER | INSTEAD OF} {INSERT | UPDATE | DELETE} ON table_name [FOR EACH ROW] [WHEN (condition)] DECLARE -- объявление переменных BEGIN -- тело триггера EXCEPTION -- обработка исключений END; Посмотреть созданные триггеры можно в таблице user_triggers (подробнее про метаданные). Важная особенность триггеров - их нельзя создавать на объектах, принадлежащих SYS. Для этого нужно переключиться на менее значимое табличное пространство, например, через другого пользователя, у которого должно быть право на создание триггеров. Пример создания: CREATE OR REPLACE TRIGGER C##username.trg_check BEFORE INSERT OR UPDATE ON C##username.table FOR EACH ROW BEGIN IF :new.amount < 100 THEN RAISE_APPLICATION_ERROR(-20001, 'Маленькое значение'); END IF; END; Этот триггер создается в контексте отдельного пользователя (username), не затрагивая пространство SYS. Он действует перед вставкой или обновлением значений в таблице и предназначен для проверки поля amount (amount < 100) в таблице table. Иными словами, если мы захотим вставить в поле amount значение меньше 100, то сработает триггер и не даст нам этого сделать. 🟠Еще один пример триггера. На этот раз он запрещает пользователю удаление таблиц: CREATE OR REPLACE TRIGGER C##username.trg_prevent_table_drop BEFORE DROP ON SCHEMA BEGIN IF ORA_DICT_OBJ_TYPE = 'TABLE' THEN RAISE_APPLICATION_ERROR(-20000, 'Удаление таблиц запрещено!'); END IF; END; Теперь при любом запросе по типу DROP TABLE table_name будет срабатывать триггер и специально вызывать ошибку. Отключить/включить триггеры можно так: ALTER TRIGGER trg_name DISABLE --или ENABLE, чтоб включить Проверить, включен ли триггер или нет, можно все в той же таблице user_triggers.
Открыть канал и посмотреть медиаSolo los usuarios registrados pueden compartir su opinión.
¡Sé el primero en compartir tu experiencia con este recurso!