A DTL (Data Transaction Language) é um subconjunto do SQL (Structured Query Language) que é usado para gerenciar e controlar transações de dados. Ela é usada para garantir que as operações de banco de dados sejam executadas de forma consistente e precisa.

A DTL fornece comandos para iniciar, confirmar e reverter transações. Ela também fornece mecanismos para garantir a integridade dos dados, como o uso de bloqueios para impedir que outros usuários acessem os dados enquanto uma transação está em andamento.

AutoCommit

O comando COMMIT salva todas as modificações feitas no momento atual. Se você confirmar um banco de dados, ele salva todas as alterações que foram feitas até aquele ponto específico. Por padrão, o banco de dados MySQL confirma/salva as alterações automaticamente.

Para desabilitar o autocommit use:

SET autocommit=0;

Após desativar o modo de confirmação automática definindo a variável autocommit como zero, as alterações em tabelas seguras para transações (como aquelas do InnoDB ou NDB) não são permanentes imediatamente. Você deve usar COMMIT para armazenar suas alterações no disco ou ROLLBACK para ignorar as alterações.

Para habilitar novamente autocommit use:

SET autocommit=1;

BEGIN

O comando BEGIN inicia uma transação. Uma transação é um conjunto de operações que são executadas como uma unidade lógica. Isso significa que todas as operações dentro da transação serão executadas com sucesso ou nenhuma delas será executada.

Por exemplo, se você estiver usando o banco de dados para adicionar um novo registro à tabela compra, você pode usar o comando BEGIN para iniciar a transação.

create database auladtl;
use auladtl;

create table compra (
id int primary key,
nome varchar(200) not null,
preco decimal(10,2)
)
BEGIN;
INSERT INTO compra (id, nome, preco) VALUES (1, 'produto1', 10.00);