English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Uma transação é um conjunto de trabalho executado no banco de dados. Uma transação é um conjunto ou sequência de trabalho completados em ordem lógica, seja concluído manualmente pelo usuário ou automaticamente por algum programa de banco de dados.
Uma transação é a distribuição de uma ou mais alterações para o banco de dados. Por exemplo, se você quiser criar, atualizar ou excluir registros na tabela, você executará uma transação na tabela. É importante controlar as transações para garantir a integridade dos dados e lidar com erros do banco de dados.
Na verdade, você organizará muitas consultas SQLite em um grupo e executá-las como parte de uma transação.
A transação possui os seguintes quatro atributos padrão, geralmente representados pelo acrônimo ACID.
Atomicidade (Atomicidade):Garanta que todas as operações dentro da unidade de trabalho sejam concluídas com sucesso, caso contrário, a transação será encerrada quando ocorrer uma falha e as operações anteriores serão revertidas ao estado anterior.
Consistência (Consistency):Garantir que o banco de dados mude corretamente o estado após a submissão bem-sucedida da transação.
Isolamento (Isolation):Tornar as operações de transação independentes e transparentes.
Durabilidade (Durability):Garantir que os resultados ou efeitos das transações submetidas ainda existam em caso de falha do sistema.
Aqui estão os seguintes comandos usados para controlar transações:
INICIAR TRANSACAO −Iniciar transação.
COMMIT−Para salvar as alterações, também pode-se usarFIM DA TRANSACAOcomando.
ROLLBACK −Reverter as alterações.
Os comandos de controle de transação são usados apenas com comandos DML INSERT, UPDATE e DELETE. Eles não podem ser usados ao criar ou excluir tabelas, pois essas operações são automaticamente submetidas no banco de dados.
Pode-se usar INICIAR TRANSACAO ou simplesmente usar o comando INICIAR para iniciar uma transação. Essas transações geralmente duram até encontrar o próximo comando COMMIT ou ROLLBACK. No entanto, se o banco de dados for fechado ou ocorrer um erro, a transação também será revertida. Aqui está a sintaxe simples para iniciar uma transação.
INICIAR; ou INICIAR TRANSACAO;
O comando COMMIT é usado para salvar as alterações das chamadas de transação no banco de dados.
Desde o último comando COMMIT ou ROLLBACK, o comando COMMIT salva todas as transações no banco de dados.
Aqui está a sintaxe do comando COMMIT.
COMMIT; ou FIM DA TRANSACAO;
O comando ROLLBACK é usado para reverter transações que não foram salvas no banco de dados.
Desde a última execução do comando COMMIT ou ROLLBACK, o comando ROLLBACK pode ser usado apenas para reverter transações.
Aqui está a sintaxe do comando ROLLBACK.
ROLLBACK;
Exemplo Online
com a tabela COMPANY contendo os seguintes registros.
ID NOME IDADE ENDEREÇO SALÁRIO ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Agora, vamos começar uma transação e a partir de age = 25excluímos o registro da tabela. Em seguida, usamos o comando ROLLBACK para reverter todas as alterações.
sqlite> BEGIN; sqlite> DELETE FROM COMPANY WHERE AGE = 25; sqlite> ROLLBACK;
Agora, se você verificar a tabela COMPANY, ela ainda tem os seguintes registros-
ID NOME IDADE ENDEREÇO SALÁRIO ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Vamos começar outra transação e a partir de AGE = 25excluímos o registro da tabela, e finalmente usamos o comando COMMIT para submeter todas as alterações.
sqlite> BEGIN; sqlite> DELETE FROM COMPANY WHERE AGE = 25; sqlite> COMMIT;
Se verificar agora, a tabela COMPANY ainda possui os seguintes registros-
ID NOME IDADE ENDEREÇO SALÁRIO ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 3 Teddy 23 Norway 20000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0