Как я могу узнать, есть ли открытая транзакция в MySQL? - PullRequest
0 голосов
/ 11 мая 2010

Как я могу узнать, есть ли открытая транзакция в mySQL? Мне нужно запустить новую, если нет открытой транзакции, но я не хочу начинать новую, если есть одна запущенная, потому что это зафиксировало бы эту запущенную транзакцию.

UPDATE:

Мне нужно запросить базу данных в одном методе моего приложения, но этот запрос может быть вызван как часть более крупной транзакции, или так же, как и сама транзакция. Изменение приложения для отслеживания, если оно открыло транзакцию, будет более трудным, поскольку оно может начаться из множества частей кода. Хотя это было бы возможно, я ищу решение, которое было бы быстрее реализовать. Простое, если утверждение в sql будет легко.

Спасибо

1 Ответ

0 голосов
/ 11 мая 2010

Я предполагаю, что вы делаете это как разовое и не пытаетесь создать что-то, что может быть сделано программно. Вы можете получить список текущих активных процессов, используя: SHOW PROCESSLIST

http://dev.mysql.com/doc/refman/5.1/en/show-processlist.html

Если вы хотите что-то запрограммированное, то я бы предложил явную блокировку таблицы в начале транзакции и освободил ее в конце.

...