Reversão a pontos de salvamento SQL
Reverta a segunda inserção a um ponto SQL mantendo a primeira visível na transação.
CREATE TEMP TABLE entries (id INTEGER);
BEGIN;
INSERT INTO entries VALUES (1);
SAVEPOINT item;
INSERT INTO entries VALUES (2);
ROLLBACK TO item;
RELEASE item;
SELECT id FROM entries;
ROLLBACK;- Projeto
- Libere o ponto e reverta a transação externa, verificando que a liberação não confirmou a linha restante.
- Revise antes de aplicar
- Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
- Modelos
- Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
CREATE TEMP TABLE entries (id INTEGER);
BEGIN;
INSERT INTO entries VALUES (1);
SAVEPOINT item;
INSERT INTO entries VALUES (2);
ROLLBACK TO item;
RELEASE item;
SELECT id FROM entries;
ROLLBACK;Revise o caminho de falha antes de alterar o código de transações
O código de transações merece uma revisão que acompanhe tanto o trabalho bem-sucedido quanto a falha parcial. O Savepoint Arc é um ambiente de programação com IA para Windows que coloca essa discussão ao lado dos arquivos do projeto. Abra a pasta da aplicação e peça ao modelo conectado que inspecione a sequência SQL, seu chamador e o resultado esperado antes de propor uma alteração.
Para uma operação de importação, uma solicitação útil pode examinar se um item rejeitado deve desfazer todo o lote ou somente o trabalho após um ponto de salvamento. Forneça as instruções relevantes e explique a política necessária para a aplicação. Peça ao assistente que relacione cada reversão ou liberação proposta a essa política, em vez de inferi-la da presença de uma transação.
Teste a proposta resultante contra o estado observável do banco de dados. Em um ambiente de teste descartável, execute o caso bem-sucedido e uma falha entre instruções; depois, inspecione quais linhas permanecem visíveis e o que o chamador recebe. Revise o código da aplicação além do SQL, pois tratar uma exceção incorretamente pode invalidar uma sequência de transação que, de outro modo, faria sentido.
Escolha um endpoint suportado compatível com OpenAI ou da Anthropic para a conversa. Um modelo de IA com restrições removidas só é uma opção disponível quando o serviço configurado o fornece, com restrições e capacidades determinadas ali. O Savepoint Arc fornece o ambiente para inspecionar edições; o comportamento do banco de dados ainda precisa ser verificado no seu mecanismo e projeto.
Perguntas sobre limites de transações
- O que devo explicar sobre uma falha parcial de importação?
Declare se os itens aceitos anteriormente devem permanecer, se toda a importação deve ser atômica e qual erro o chamador deve receber. Essas decisões determinam o limite pretendido; o modelo não deve escolher uma política de transação apenas pela sintaxe SQL.
- Um teste de ponto de salvamento substitui a verificação do chamador da aplicação?
Não. O chamador pode tentar novamente, capturar uma exceção ou emitir instruções adicionais após a sequência SQL. Inclua esse código na revisão e verifique sua resposta à falha, especialmente quando a confirmação final ocorre fora da função mostrada.
- Onde devo experimentar uma alteração de reversão proposta?
Use um banco de dados de teste descartável com dados representativos e o mesmo comportamento do mecanismo do qual o projeto depende. Inspecione as linhas resultantes e o resultado da transação. Não trate uma explicação passo a passo do modelo como evidência de que as instruções foram executadas com sucesso.
- Devo adicionar lógica de novas tentativas ao alterar pontos de salvamento?
Somente com um requisito explícito e uma revisão sobre a segurança de repetir a operação. Mantenha as novas tentativas separadas de uma correção de limites quando possível, para que o efeito de cada alteração continue compreensível e testável.
Savepoint Arc · Atualizado 2026-10-25