BEGIN
Inicia uma transação. Sinônimo de START TRANSACTION.
Quer consista em um ou mais comandos, uma transação é uma unidade de trabalho única e lógica. Geralmente, todos os comandos de uma transação são executados em um snapshot do banco de dados, cuja a hora de início é determinada pelo valor definido para o parâmetro de configuração do sistema transaction_snapshot_begin
.
Por padrão, as operações individuais do Amazon Redshift (consultas, instruções de DDL, cargas) são confirmadas automaticamente no banco de dados. Se quiser suspender a confirmação de uma operação até que o trabalho subsequente seja concluído, você precisará abrir uma transação com a instrução BEGIN, executar os comandos e depois fechar a transação com a instrução COMMIT ou END. Se necessário, use uma instrução ROLLBACK para abortar uma transação em andamento. Uma exceção a esse comportamento é o comando TRUNCATE que confirma a transação na qual é executado e não pode ser revertido.
Sintaxe
BEGIN [ WORK | TRANSACTION ] [ ISOLATION LEVEL option ] [ READ WRITE | READ ONLY ] START TRANSACTION [ ISOLATION LEVEL option ] [ READ WRITE | READ ONLY ] Where option is SERIALIZABLE | READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ Note: READ UNCOMMITTED, READ COMMITTED, and REPEATABLE READ have no operational impact and map to SERIALIZABLE in Amazon Redshift. You can see database isolation levels on your cluster by querying the stv_db_isolation_level table.
Parâmetros
- WORK
-
Palavra-chave opcional.
- TRANSACTION
-
Palavra-chave opcional; WORK e TRANSACTION são sinônimos.
- ISOLATION LEVEL SERIALIZABLE
-
O isolamento serializável é compatível por padrão. Portanto, o comportamento da transação é o mesmo, esteja ou não essa sintaxe incluída na instrução. Para obter mais informações, consulte Gerenciamento de operações de gravação simultâneas. Nenhum outro nível de isolamento é compatível.
nota
O padrão SQL define quatro níveis de isolamento de transação para impedir dirty reads (leitura contaminada em que uma transação lê dados gravados por outra transação simultânea não confirmada), nonrepeatable reads (leitura não repetível em que uma transação relê dados lidos anteriormente e descobre que os dados foram alterados por outra transação confirmada após a leitura inicial) e phantom reads (leitura fantasma em que uma transação executa uma consulta novamente, retorna um conjunto de linhas que satisfaz uma condição de pesquisa e descobre que o conjunto de linhas mudou por causa de outra transação confirmada recentemente):
-
Leitura não confirmada: É possível que ocorram leituras contaminadas, não repetíveis e fantasmas.
-
Leitura confirmada: É possível que ocorram leituras não repetíveis e fantasmas.
-
Leitura repetível: É possível que ocorram leituras fantasma.
-
Serializável: Impede que ocorram leituras contaminadas, não repetíveis e fantasma.
Embora seja possível usar qualquer dos quatro níveis de isolamento de transação, o Amazon Redshift processa todos os níveis de isolamento como serializáveis.
-
- READ WRITE
-
Oferece permissões de leitura e gravação à transação.
- READ ONLY
-
Oferece permissões somente de leitura à transação.
Exemplos
Os exemplos a seguir iniciam um bloco de transação serializável:
begin;
Os exemplos a seguir iniciam o bloco de transação com um nível de isolamento serializável e permissões de leitura e gravação:
begin read write;