powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / проблема с транзакциями...
15 сообщений из 15, страница 1 из 1
проблема с транзакциями...
    #32120738
webmechanics
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
имеем: mysql-max 4.0.10-gamma-nt

есть таблица balanses (inno-db) примерно такого вида:

client int 8
currency int 8
value decimal 8,2

первые два поля - primary key

надо сделать вот что:

начать транзакцию
обновить значение value
потом прочесть его и, если оно больше нуля,
закончить транзакцию

пишем:

(допустим - начальное значение поля value = 0)

begin;
update balanses set value = (value+200) where client = 2 and currency = 2;
select value from balanses where client = 2 and currency = 2;

вот тут почему-то сервер выдает мне значение value равным 0 (старому значению, проще говоря), хотя по идее, должен выдавать 200 (новое, но еще не сохраненное в БД значение, все команды производятся в одном подключении)

внимание, вопрос: кто-нибудь знает, почему БД выдает старое, не обновленное значение поля?
...
Рейтинг: 0 / 0
проблема с транзакциями...
    #32120945
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может - дело в уровне изоляции транзакций?
Типа попробовать READ UNCOMMITTED....
...
Рейтинг: 0 / 0
проблема с транзакциями...
    #32120948
webmechanics
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а подробнее можно?
лучше прям подправить приведенный выше код...
...
Рейтинг: 0 / 0
проблема с транзакциями...
    #32120956
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.mysql.com/doc/ru/SET_TRANSACTION.html
...
Рейтинг: 0 / 0
проблема с транзакциями...
    #32122284
webmechanics
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, не помогло...
что еще можно попробовать?
...
Рейтинг: 0 / 0
проблема с транзакциями...
    #32122379
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попытаться изменить логику...
Типа сначала прочесть, прибавить значение и если оно больше нуля - то тады сделать апдейт?
...
Рейтинг: 0 / 0
проблема с транзакциями...
    #32122480
webmechanics
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну, это само собой...
хотелось же как положено... вот в постгрес таких проблем нет. все-таки недоразвитая БД MySQL, недоразвитая :)
...
Рейтинг: 0 / 0
проблема с транзакциями...
    #32122662
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как говорится - мал клоп, да вонюч...
Недоразвитость муси компенсируется его быстротой, простотой и многоплатформенностью, а вашу задачу - ведь можно решить и другим путем - ведь правда?
Вааше странно, что не сработала конструкция
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
Хотя - там в доке как-то туманно сказано, что "По умолчанию уровень изоляции устанавливается для последующей (не начальной) транзакции".
Хотя - дело может быть и в версии муси - счас вроде последняя/стабильная 4.0.12
...
Рейтинг: 0 / 0
проблема с транзакциями...
    #32122679
webmechanics
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я уровень изоляции транзакции устанавливал всеми возможными способами во все возможный значения :) и перед транзакцией и во время транзакции... не помогает...
...
Рейтинг: 0 / 0
проблема с транзакциями...
    #32122880
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может - установить этот уровень по умолчанию прямо в конфиге мускуля?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
проблема с транзакциями...
    #32462688
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то не то
По-любому должно работать с любым уровнем изоляции
Причину надо искать в чем-то другом

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
проблема с транзакциями...
    #32462809
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых - покажи

show create table balances

Во вторых 4.0.10 - это достаточно старая версия и даже еще не stable. используйте 4.0.18

В третиьих как проверял? если через mysql консольный клиент - то не забыл ли ты отключить autocommit?

По крайней мере когда я пробую твой пример - все прокатывает нормально:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
mysql> create table balances (client int, currency int, value decimal( 8 , 2 )) type
=innodb;
Query OK,  0  rows affected ( 0 . 02  sec)

mysql> insert into balances values ( 1 , 1 , 100 ),( 2 , 2 , 105 );
Query OK,  2  rows affected ( 0 . 00  sec)
Records:  2   Duplicates:  0   Warnings:  0 

mysql> set autocommit= 0 ;
Query OK,  0  rows affected ( 0 . 00  sec)

mysql> begin;
Query OK,  0  rows affected ( 0 . 00  sec)

mysql> update balances set value = (value+ 200 ) where client =  2  and currency =  2  ;
Query OK,  1  row affected ( 0 . 01  sec)
Rows matched:  1   Changed:  1   Warnings:  0 

mysql> select value from balances where client =  2  and currency =  2 ;
+ --------+
 
| value  |
+ --------+
 
|  305 . 00  |
+ --------+
 
 1  row in set ( 0 . 00  sec)

...
Рейтинг: 0 / 0
проблема с транзакциями...
    #32462815
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А!
про autocommit - не в тему.
...
Рейтинг: 0 / 0
проблема с транзакциями...
    #32464772
BigHarryу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Во вторых 4.0.10 - это достаточно старая версия и даже еще не stable. используйте 4.0.18

Дык тема-то была заведена аж год назад !!!
...
Рейтинг: 0 / 0
проблема с транзакциями...
    #32464842
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оппаньки...
Тогда звиняйте

Я тогда на 3.23.48 (наверно) работал, но там такого не было

Еще раз извините

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / проблема с транзакциями...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]