Триггер: запрет выполнения запроса delete * from - MySQL

Узнай цену своей работы

Формулировка задачи:

Добрый вечер. Столкнулся с такой проблемой. Нужно написать триггер Before Delete, который запретит запрос Delete * from table, чтобы нельзя было удалить все записи в таблице. Подскажите, что делать?

Решение задачи: «Триггер: запрет выполнения запроса delete * from»

textual
Листинг программы
DELIMITER //
CREATE TRIGGER table_name_
BEFORE DELETE
BEGIN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'DELETE canceled'; 
END; //
DELIMITER;

Объяснение кода листинга программы

  1. DELIMITER // - устанавливает специальный символ-делитель для обработки кода SQL.
  2. CREATE TRIGGER table_name_ - создает триггер с именем table_name_, который будет выполняться при попытке выполнения запроса DELETE.
  3. BEFORE DELETE - указывает, что триггер будет выполняться перед выполнением операции DELETE.
  4. BEGIN - начало блока кода триггера.
  5. SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'DELETE canceled' - генерирует исключение с сообщением 'DELETE canceled', которое отменяет выполнение операции DELETE.
  6. END; // - завершает блок кода триггера.
  7. DELIMITER; - возвращает значение символа-делителя к его исходному значению. Вышеуказанный код создает триггер, который отменяет выполнение операции DELETE для таблицы, имя которой указано в переменной table_name_. При попытке выполнить запрос DELETE для этой таблицы, триггер сгенерирует исключение, которое отменит выполнение запроса и выведет сообщение 'DELETE canceled'.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5