SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.03.2010 15:25:23

FiMko
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 18.09.2009
Сообщений: 198

Как выкинуть исключение из триггера?

Ребята, привет всем!

Есть вопрос, не смог найти ответа на него в документации Mysql.
Необходимо: проверить данные перед вводом (insert, update, пр.) и в случае неверных данных отменить команду или вернуть какой-то идентификатор (или строку) об ошибке.
Я был уверен, что это можно сделать с помощью триггеров, но не могу найти как...

Я видел только примеры как записать что-то в другую таблицу в триггере (вести лог), сделать другие вставки и пр. стандартные операции MySQL.

---
Мдя, похоже этого пока нет: How to throw/raise and error/exception

Отредактированно FiMko (26.03.2010 15:39:05)

Неактивен

 

#2 26.03.2010 16:24:24

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Как выкинуть исключение из триггера?

Да, к сожалению, нужно генерировать какую-то ошибку. Впрочем, она может быть
полуинформативной типа INSERT INTO error_vy_vveli_erundu_v_pole VALUES (1);

Неактивен

 

#3 26.03.2010 16:56:30

FiMko
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 18.09.2009
Сообщений: 198

Re: Как выкинуть исключение из триггера?

Я пока читаю доки, но, видимо, буду делать логику проверок через хранимые процедуры/функции и вот еще интересная вещь: DECLARE for Handlers, а также LEAVE для прерывания выполнения процедуры и, соответственно, RETURN для прерывания работы функции.

Отредактированно FiMko (04.04.2010 18:19:46)

Неактивен

 

#4 31.03.2010 06:42:29

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Как выкинуть исключение из триггера?

Да. LEAVE для выхода из процедуры - это интересное наблюдение, спасибо.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson