Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ХП и транзакции, целостность выполнения ХП 
:(
    Опции темы
AndyMur
Дата 11.4.2008, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 22.3.2008
Где: Russia

Репутация: нет
Всего: нет



Здравствуйте, замучал следующий вопрос.

Судя по здравому смыслу, ХП в MySQL (и вообще где бы то ни было) выполняется в рамках одной транзакции, то есть если у нас в ХП выполнено несколько SQL-операторов, то при успехе и автокоммите они попадут в БД, иначе произойдет откат.

Суть самой проблемы в том, что имеем в ХП следующие операторы:

Код

update temp set sum=_input_var where id=1;
insert into temp values(2,2);


Для тамблицы с полями id (PK, BIGINT), sum (INT)

Причем второй оператор спотыкается из-за DUPLICATED KEYS. Так вот 
если выполнять код

Код

start transaction;

call my_proc();

commit/rollback;


Все прекрасно, однако если я хочу вызывать ХП без явного указания начала транзакции, то несмотря на неуспех insert'а, первый оператор срабатывает и изменяет сумму. Не очень хочется делать старт транзакции, ведь она сама по себе проваливается и не должна по идее требовать коммит/роллбак, при том что похожие ХП на Firebird либо выполняются полностью и происходит автокоммит либо отбрасываются.

Спасибо за ответы.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0656 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.