START TRANSACTION — inicia um bloco de transação
START TRANSACTION [modo_da_transação[, ...] ] ondemodo_da_transaçãoé um entre: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED } READ WRITE | READ ONLY [ NOT ] DEFERRABLE
Este comando inicia um novo bloco de transação. Se for especificado o nível de isolamento, o modo de leitura/escrita, ou o modo postergável, a nova transação terá estas características, como se o comando SET TRANSACTION tivesse sido executado. É o mesmo que o comando BEGIN.
Veja SET TRANSACTION para obter informações sobre o significado dos parâmetros desse comando.
No padrão, não é necessário executar
START TRANSACTION para iniciar um bloco de
transação: qualquer comando SQL inicia um bloco
implicitamente.
O comportamento do PostgreSQL pode ser
visto como a execução implícita do COMMIT após
cada comando que não segue START TRANSACTION
(ou BEGIN), portanto, é frequentemente chamado
de “autocommit” (autoefetivação).
Outros sistemas de banco de dados relacionais podem oferecer o
recurso de efetivação automática como uma conveniência.
O modo_da_transação
DEFERRABLE (postergável) é uma extensão do
PostgreSQL à linguagem.
O padrão SQL requer vírgulas entre os
modo_da_transação,
mas por razões históricas o PostgreSQL
permite que as vírgulas sejam omitidas.
Veja também a seção de compatibilidade de SET TRANSACTION.