|
MySQL.RU - Webboard
Вернуться
Отслеживание транзакций в 5-й версии. (RIBor) 11/05/2006 - 16:33:42
Re: Отслеживание транзакций в 5-й версии. (Dinky) 11/05/2006 - 20:54:19
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 нет.
Заранее спасибо.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
27803
|
|