|
|
|
В хранимой процедуре транзакция выполняется не полностью.
|
|||
|---|---|---|---|
|
#18+
Несколько раз сталкивался, что в хранимой процедуре транзакция выполняется не полностью. Например, если в запросе insert ниже комментария "#добавление ролей" сделать ошибку в имени столбца, то будет выдано сообщение об ошибке, в таблицу usr строка будет добавлена, а в adm_Usrroles- нет. Такого же не должно быть. Как этого избежать? Код: sql 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 07:50:34 |
|
||
|
В хранимой процедуре транзакция выполняется не полностью.
|
|||
|---|---|---|---|
|
#18+
seg856, Все таблицы на InnoDB ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 13:22:23 |
|
||
|
В хранимой процедуре транзакция выполняется не полностью.
|
|||
|---|---|---|---|
|
#18+
seg856Как этого избежать? Не делать безусловный commit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 14:02:28 |
|
||
|
В хранимой процедуре транзакция выполняется не полностью.
|
|||
|---|---|---|---|
|
#18+
А с чего ты думаешь, что ошибка вызовет откат? Где тот ROLLBACK, который его инициирует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 14:06:19 |
|
||
|
В хранимой процедуре транзакция выполняется не полностью.
|
|||
|---|---|---|---|
|
#18+
Akina, а в ms sql server если внутри транзакции ошибка, вся транзакция не выполняется. Там не нужно предусматривать все варианты, где может случиться ошибка и вставлять ROLLBACK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2015, 16:21:35 |
|
||
|
В хранимой процедуре транзакция выполняется не полностью.
|
|||
|---|---|---|---|
|
#18+
MasterZiv, все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2015, 16:21:54 |
|
||
|
В хранимой процедуре транзакция выполняется не полностью.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, какие условия должны быть на commit в данном примере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2015, 16:22:37 |
|
||
|
В хранимой процедуре транзакция выполняется не полностью.
|
|||
|---|---|---|---|
|
#18+
seg856а в ms sql server если внутри транзакции ошибка, вся транзакция не выполняется И что? каким тут боком MS SQL? мало ли кто как себя в каких случаях ведёт... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2015, 16:47:35 |
|
||
|
В хранимой процедуре транзакция выполняется не полностью.
|
|||
|---|---|---|---|
|
#18+
но в любом СУБД транзакция должна выполняться или не выполняться целиком, что бы ни случилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2015, 08:51:31 |
|
||
|
В хранимой процедуре транзакция выполняется не полностью.
|
|||
|---|---|---|---|
|
#18+
Она и выполняется целиком. Ну посередине выполнения один запрос не был выполнен по причине там syntax error, unknown field или ещё какой - и что? так ведь это нормальное течение процесса, никто и нигде не сказал, что такая ошибка должна привести к откату транзакции, ибо ROLLBACK-a в упор не видать, а вот COMMIT, наоборот, тутачка... Не согласен? ну тогда тыкни в то место документации, где написано, что ошибка выполнения одного любого оператора приводит к безусловному откату транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2015, 09:25:40 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39077208&tid=1832612]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 376ms |

| 0 / 0 |
