Как сделать триггер на запрет изменений любых не пустых значений в MySQL?

Есть 3 таблицы test1, test2, test3 c 13 столбцами каждая. Нужно создать триггер для запрета обновления любых полей, которые не пустые. Можно ли как-то сделать в одном триггере? Т.е. если изменяемый столбец любой таблицы не равен null, то его изменить нельзя. В самих запросах из программы я это проверяю конечно же, но можно ли это именно запретить?

CREATE TRIGGER `no_update`
BEFORE UPDATE ON `any` FOR EACH ROW
BEGIN
IF NEW.CURRENT IS NOT NULL THEN
SET NEW.CURRENT = OLD.CURRENT;
END IF;
END


Можно ли что-то подобное реализовать, или требуется для каждого столбца каждой таблицы отдельный писать?
  • Вопрос задан
  • 2802 просмотра
Решения вопроса 1
@MAD_B
Придется делать для каждого столбца
и проверять нужно
IF OLD.CURRENT IS NOT NULL THEN
а не
IF NEW.CURRENT IS NOT NULL THEN

судя по условию задачи
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы