Тригеры на ограничение ввода данных в таблицу - MySQL
Формулировка задачи:
Помогите кто может.
Нужно написать тригер для ограничения ввода данных в таблицу, к примеру есть столбец группа крови, нужно ограничение чтобы он выходила ошибка если введешь 5 группу крови. Это пример.
Решение задачи: «Тригеры на ограничение ввода данных в таблицу»
textual
Листинг программы
CREATE DEFINER=`1`@`%` TRIGGER `db`.`table` BEFORE INSERT ON `table` FOR EACH ROW FOR EACH ROW BEGIN IF (NEW.gruppa <> 1 AND NEW.gruppa <> 2 AND NEW.gruppa <> 3 AND NEW.gruppa <> 4) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = ' gruppa ne podxodit'; END IF; END
Объяснение кода листинга программы
- Создание триггера с именем
trigger_name
на таблицеtable
- Указание пользователя
definer
и пользователей, которым принадлежит триггерtrigger_name
- Указание события
BEFORE INSERT
, которое будет выполняться перед вставкой новой записи - Указание условия
IF (NEW.gruppa <> 1 AND NEW.gruppa <> 2 AND NEW.gruppa <> 3 AND NEW.gruppa <> 4)
, которое проверяет значение поляgruppa
новой записи - Если условие не выполняется, то выполняется сигнал
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = ' gruppa ne podxodit'
, который отменяет вставку записи и выводит сообщение об ошибке - Завершение блока
END IF
- Завершение блока
END
, который обозначает конец триггера - Завершение создания триггера
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д