MySQL использует SIGNAL
для таких вещей:
SIGNAL - это способ «вернуть» ошибку.SIGNAL предоставляет информацию об ошибке обработчику, внешней части приложения или клиенту.Кроме того, он обеспечивает контроль характеристик ошибки (номер ошибки, значение SQLSTATE, сообщение).Без SIGNAL необходимо прибегнуть к обходным путям, таким как преднамеренное обращение к несуществующей таблице, чтобы подпрограмма вернула ошибку.
Любая Условная ошибка в триггере BEFORE (включая, AFAIK, соответствующее значение SIGNAL
) прервет триггер и оператор, который активировал триггер.Если ваша версия MySQL не поддерживает SIGNAL
(т. Е. Ваша версия меньше 5.5), вам придется вызвать ошибку другим способом, например, старый хак «выбрать из таблицы, который не существует» или "нарушить ПК двойной вставкой" взломать.
У меня есть только 5,1 под рукой, поэтому я не могу проверить SIGNAL
материал.Соответствующий раздел «19.3.1. Синтаксис триггера» такой же для 5.1, 5.2 и 5.5, хотя один из кластеров «инициировать ошибку» должен работать, если вам нужно прибегнуть к таким вещам.