|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
имеем: 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 (новое, но еще не сохраненное в БД значение, все команды производятся в одном подключении) внимание, вопрос: кто-нибудь знает, почему БД выдает старое, не обновленное значение поля? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2003, 12:44 |
|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
Может - дело в уровне изоляции транзакций? Типа попробовать READ UNCOMMITTED.... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2003, 10:58 |
|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
а подробнее можно? лучше прям подправить приведенный выше код... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2003, 11:03 |
|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
http://www.mysql.com/doc/ru/SET_TRANSACTION.html ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2003, 11:16 |
|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
спасибо, не помогло... что еще можно попробовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2003, 16:30 |
|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
Можно попытаться изменить логику... Типа сначала прочесть, прибавить значение и если оно больше нуля - то тады сделать апдейт? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2003, 17:47 |
|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
ну, это само собой... хотелось же как положено... вот в постгрес таких проблем нет. все-таки недоразвитая БД MySQL, недоразвитая :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2003, 21:06 |
|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
Как говорится - мал клоп, да вонюч... Недоразвитость муси компенсируется его быстротой, простотой и многоплатформенностью, а вашу задачу - ведь можно решить и другим путем - ведь правда? Вааше странно, что не сработала конструкция SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED Хотя - там в доке как-то туманно сказано, что "По умолчанию уровень изоляции устанавливается для последующей (не начальной) транзакции". Хотя - дело может быть и в версии муси - счас вроде последняя/стабильная 4.0.12 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2003, 10:51 |
|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
я уровень изоляции транзакции устанавливал всеми возможными способами во все возможный значения :) и перед транзакцией и во время транзакции... не помогает... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2003, 11:05 |
|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
Может - установить этот уровень по умолчанию прямо в конфиге мускуля? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2003, 13:19 |
|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
Что-то не то По-любому должно работать с любым уровнем изоляции Причину надо искать в чем-то другом Жизнь коротка - потерпи немного :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2004, 17:21 |
|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
Во первых - покажи 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2004, 18:29 |
|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
А! про autocommit - не в тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2004, 18:31 |
|
проблема с транзакциями...
|
|||
---|---|---|---|
#18+
Во вторых 4.0.10 - это достаточно старая версия и даже еще не stable. используйте 4.0.18 Дык тема-то была заведена аж год назад !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2004, 23:14 |
|
|
start [/forum/topic.php?fid=47&msg=32462815&tid=1855289]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 140ms |
0 / 0 |