TCL (Transaction Control Language) é o conjunto de comandos SQL responsável pelo controle das transações realizadas no banco de dados.
As transações garantem que operações de inserção, atualização e exclusão sejam executadas com segurança.
Uma transação é um conjunto de operações SQL tratadas como uma única unidade de trabalho.
Exemplo:
Transferência bancária
1 - Retirar dinheiro da conta A
2 - Adicionar dinheiro na conta B
As duas operações precisam funcionar juntas.
| Comando | Função |
|---|---|
| COMMIT | Confirma alterações |
| ROLLBACK | Desfaz alterações |
| SAVEPOINT | Cria pontos de retorno |
As transações seguem o conceito ACID.
| Propriedade | Descrição |
|---|---|
| Atomicidade | Tudo executa ou nada é aplicado |
| Consistência | Banco permanece correto |
| Isolamento | Transações não interferem entre si |
| Durabilidade | Dados confirmados permanecem salvos |
Podemos iniciar uma transação utilizando:
START TRANSACTION;
A partir desse momento, as alterações ficam pendentes até um COMMIT ou ROLLBACK.
START TRANSACTION;
INSERT INTO clientes
(nome)
VALUES
('Maria');
COMMIT;
O registro somente será confirmado após o COMMIT.
START TRANSACTION;
DELETE FROM clientes
WHERE id = 10;
ROLLBACK;
A exclusão será cancelada.
O SAVEPOINT cria um ponto intermediário dentro de uma transação.
START TRANSACTION;
UPDATE clientes
SET nome='João'
WHERE id=1;
SAVEPOINT ponto1;
DELETE FROM pedidos;
ROLLBACK TO ponto1;
COMMIT;
| DML | TCL |
|---|---|
| Manipula dados | Controla alterações |
| INSERT, UPDATE, DELETE | COMMIT, ROLLBACK, SAVEPOINT |
| Executa operações | Confirma ou desfaz operações |
| Sistema | Uso |
|---|---|
| Bancos | Transferências financeiras |
| E-commerce | Compra e pagamento |
| ERP | Atualização de estoque |
| Hospitais | Atualização de registros |
| Erro | Problema |
|---|---|
| Esquecer COMMIT | Alteração não confirmada |
| Usar ROLLBACK incorreto | Perda de dados |
| Transações muito longas | Bloqueios no banco |
| Não controlar erros | Dados inconsistentes |