TRANSACTION ISOLATION LEVEL в хранимой процедуре mysql

225
30 марта 2017, 19:57

Для MS SQL есть возможность установки TRANSACTION ISOLATION LEVEL в хранимых процедурах. Например:

CREATE PROCEDURE MySP AS
BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
BEGIN TRAN  --you are changing isoloation level from default read commited to read uncommited
      SELECT * FROM MyTable
COMMIT TRAN  --back to default isolation level
END

А как получить текущий TRANSACTION ISOLATION LEVEL в хранимой процедуре MySQL и установить новый? Или это в принципе невозможно в MySQL, и уровень изоляции транзакции можно задать только на уровне сессии или глобально?

Answer 1

В MySQL уровень изоляции устанавливается так же, как и в MS SQL. SET TRANSACTION Syntax. Если не указано, что уровень устанавливается глобально или сессионно, то он устанавливается для ближайшей транзакции.

Насчёт возможности получения сведений о текущем уровне изоляции - получите значение глобальной/сессионной tx_isolation. Но какой в этом смысл? не проще ли безусловно установить тот уровень, который необходим?

READ ALSO
Deadlock в MySQL: анализ engine.log

Deadlock в MySQL: анализ engine.log

Как понять причину deadlock'а - а именно, какие транзакции захватили какие блокировки?

320
Обработка потока/перехват данных

Обработка потока/перехват данных

Хочу добиться интерактивного взаимодействия с командной строкойДля этого использовал найденный в интернете класс SyncPipe

205
Java renameTo - не работает переименование

Java renameTo - не работает переименование

Добрый деньНикак не могу понять как переименовывать файл в Java, т

351