Предположим, у меня есть два определенных поля в таблице sql, to_change и not_null .
Как мне действовать, если я хочу создать триггер sql, который будет превращать to_change в 5 всякий раз, когда not_null получает обнуление < / strong>?
1 ответ
Вы можете сделать что-то вроде этого:
CREATE TRIGGER change_field_if_other_field_is_null
BEFORE UPDATE ON your_table
FOR EACH ROW SET NEW.to_change = IF (NEW.isnt_null IS NULL, 5, NEW.to_change);
В каждом операторе UPDATE
этот триггер изменяет поле "to_change" на 5, когда другое поле устанавливается на NULL
.
Обратите внимание, что вам необходимо создать аналогичный триггер BEFORE INSERT
, если вы хотите, чтобы эта логика применялась и для вновь вставленных строк.
Похожие вопросы
Новые вопросы
mysql
MySQL - это бесплатная система управления реляционными базами данных с открытым исходным кодом (RDBMS), использующая язык структурированных запросов (SQL). НЕ ИСПОЛЬЗУЙТЕ этот тег для других БД, таких как SQL Server, SQLite и т. Д. Это разные БД, которые все используют свои собственные диалекты SQL для управления данными.
CREATE TRIGGER change_field_if_other_field_is_null BEFORE UPDATE ON your_table FOR EACH ROW SET NEW.to_change = IF (NEW.isnt_null IS NULL, 5, NEW.to_change), NEW.another_field = IF(NEW.isnt_null IS NULL,5,NEW.another_field);
?