







|
MySQL.RU - Webboard
Вернуться
Отмена иструкций INSERT, UPDATE, DELETE в три (GerholdtSchnaps) 01/07/2008 - 01:44:05
Re: Отмена иструкций INSERT, UPDATE, DELETE в три (Санек) 08/12/2009 - 22:23:14
Re: Круто, спасибо (Артем) 22/01/2010 - 15:06:37
Re: Отмена иструкций INSERT, UPDATE, DELETE в три (Михаил) 14/12/2010 - 15:01:36
> Original message text:
> From: GerholdtSchnaps - 01/07/2008 - 01:44:05
> Subject:Отмена иструкций INSERT, UPDATE, DELETE в три
> -----------------
> MySQL 5.0.45 nt-community
>
> Возникла тут у меня необходимость использовать триггеры для пресечения попыток вставить кривые данные в таблицу... по форумам полазил и так ничего не нашел...
> В итоге - пришлось RTFM и пробовать, пробовать и пробовать. И вот что получилось:
>
> -======== Триггер: Before Insert, Before Update, Before Delete =========-
> IF <ConditionToPreventActionSuccess> THEN
> SET @SQLFailureMsg = 'Condition failed';
> KILL QUERY CONNECTION_ID();
> END IF;
>
>
> -======= В роцедуре (например): =========-
> DECLARE CONTINUE HANDLER FOR 1317 BEGIN
> обрабатываем событие "Error: 1317 SQLSTATE: 70100 (ER_QUERY_INTERRUPTED)"
> например, можно вернуть сообщение, хранящееся в этот момент в @SQLFailureMsg
> END;
>
> -====== Замечания: =======-
> 1. В каскадных операциях отменяется только текущая вставка и все последующие.
> Записи, для которых триггер сработал корректно, считаются успешно вставленными.
> 2. "After insert" не срабатывает вообще, потому как считается, что записи уже были вставлены
>
>
> З.Ы. Надеюсь, кому-то инфа окажется полезной.
>
From: Артем - 22/01/2010 - 15:06:37
Subject:Круто, спасибо
-----------------
Спасибо!
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
37766
|
|