|
MySQL.RU - Webboard
Вернуться
Отслеживание транзакций в 5-й версии. (RIBor) 11/05/2006 - 16:33:42
Re: Отслеживание транзакций в 5-й версии. (Dinky) 11/05/2006 - 20:54:19
> Original message text:
> From: RIBor - 11/05/2006 - 16:33:42
> Subject:Отслеживание транзакций в 5-й версии.
> -----------------
> Всем доброго времени суток!
> Подскажите, каким образом в процедуре можно отследить успешность операций в явной транзакции и в случае успеха её завершить, либо откатить.
> В MS SQL для этого используется системная переменная @@error.
> Т.е. используется конструкция
> begin tran
> <операторы>
> if @@error = 0
> commin tran
> else
> rollback tran
> В MySQL ничего подобного нет. Для операций вставки можно использовать функцию row_count() и если она возвращает 0 - откатывать транзакцию. А вот как быть с операциями удаления?
> Например:
> start tran ;
>
> delete from t1 ;
> delete from t2 where ... ;
> delete from t3 where ... ;
>
> If <условие???> then
> rollback ;
> else
> commit ;
> end if ;
>
> Функцию row_count() использовать нельзя, так как возможна ситуация, когда строки для удаления из таблицы 1 есть, а из t2 и t3 нет.
>
> Заранее спасибо.
>
From: Dinky - 11/05/2006 - 20:54:19
Subject:Отслеживание транзакций в 5-й версии.
-----------------
в MySQL есть conditions and handlers:
http://dev.mysql.com/doc/refman/5.0/en/declare-handlers.html
список:
http://dev.mysql.com/doc/refman/5.0/en/error-messages-server.html
--
Dmitry
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
27803
|
|