Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как узнать есть ли открытая транзакция или нет? / 6 сообщений из 6, страница 1 из 1
02.05.2006, 17:21
    #33702346
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать есть ли открытая транзакция или нет?
скажем в процедуре я хочу открыть транзакцию, но перед тем убедиться если эта процедура вызвана уже в транзакцииЮ то не отркывать свою, иначе - открыть

Т.е. какой-нибудь аналог @@TRANCOUNT в MSSQLServer
...
Рейтинг: 0 / 0
02.05.2006, 18:59
    #33702539
wbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать есть ли открытая транзакция или нет?
копирую сюда кусок из документации для 8ки.

Код: plaintext
Issuing BEGIN when already inside a transaction block will provoke a warning message. The state of the transaction is not affected....
...
Рейтинг: 0 / 0
02.05.2006, 19:03
    #33702545
wbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать есть ли открытая транзакция или нет?
+ внутри процедуры НЕЛЬЗЯ начинать/заканчивать транзакцию .. ВСЕ ПРОЦЕДУРЫ как бы они не были запущенны происходят внутри транзакции.

1: begin;
2: select * from my_proc1();
3: select * from table_1;
4: commit;
5: select * from my_proc2();

my_proc1 выполняется внутри транзакции которая начинается в п.1 и заканчивается в п.4
my_proc1 выполняется внутри транзакции которая начинается в п.5 и заканчивается в п.5
...
Рейтинг: 0 / 0
02.05.2006, 19:06
    #33702549
wbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать есть ли открытая транзакция или нет?
копипаст подвел
последняяя строчка естественно
my_proc2 выполняется внутри транзакции которая начинается в п.5 и заканчивается в п.5
...
Рейтинг: 0 / 0
03.05.2006, 11:03
    #33703442
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать есть ли открытая транзакция или нет?
wbearкопипаст подвел
последняяя строчка естественно
my_proc2 выполняется внутри транзакции которая начинается в п.5 и заканчивается в п.5

спасибо.

Т.е. в данном примере пункт 5 - это неявная транзакция, при остутствии явных команд открытия и закрытия.

"Issuing BEGIN when already inside a transaction block will provoke a warning message"

вопрос и был связан с тем, чтобы не выдать лишнюю команду внутри транзакции, а проверить, если уже есть транзакция, то и работать без объявления новой.

получается, что вложенных транзакций не бывает?
...
Рейтинг: 0 / 0
03.05.2006, 14:50
    #33704257
wbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать есть ли открытая транзакция или нет?
в 8ке бывают..
но они называются подругому... savepoint
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как узнать есть ли открытая транзакция или нет? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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