START TRANSACTION [ modo_da_transação [, ...] ] onde modo_da_transação é um entre: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED } READ WRITE | READ ONLY
Este comando inicia um novo bloco de transação. Se for especificado o nível de isolamento, ou o modo para leitura/escrita, a nova transação terá estas características, como se o comando SET TRANSACTION tivesse sido executado. Este comando é idêntico ao comando BEGIN. [1]
As informações sobre o significado dos parâmetros deste comando devem ser vistas no comando SET TRANSACTION.
De acordo com o padrão não é necessário submeter o comando START TRANSACTION para iniciar um bloco de transação: qualquer comando SQL inicia, implicitamente, um bloco de transação. O comportamento do PostgreSQL pode ser visto como submetendo, implicitamente, um comando COMMIT após cada comando que não vem após um comando START TRANSACTION (ou BEGIN). Este comportamento geralmente é chamado de "auto-efetivação" (autocommit). Outros sistemas de banco de dados relacionais podem oferecer a funcionalidade de auto-efetivação como uma comodidade.
O padrão SQL requer a presença de vírgulas entre os modos_da_transação, mas por razões históricas o PostgreSQL permite que estas vírgulas sejam omitidas.
Também deve ser consultada a seção sobre compatibilidade do comando SET TRANSACTION.
[1] |
SQL Server — O comando BEGIN TRANSACTION marca o ponto inicial de uma transação local explícita. O comando BEGIN TRANSACTION incrementa a variável @@TRANCOUNT (número de transações ativas para a conexão corrente) em 1. BEGIN TRANSACTION representa um ponto onde os dados referenciados pela conexão estão logicamente e fisicamente consistentes. Se forem encontrados erros, todas as modificações nos dados feitas após o BEGIN TRANSACTION poderão ser desfeitas para que os dados retornem a este estado de consistência conhecido. A transação continua existindo até completar sem erros e ser submetido o comando COMMIT TRANSACTION, para tornar as modificações parte permanente do banco de dados, ou até serem encontrados erros e todas as modificações serem apagadas pelo comando ROLLBACK TRANSACTION. SQL Server 2005 Books Online — BEGIN TRANSACTION (Transact-SQL) (N. do T.) |