"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como obter comportamento transacional em procedimentos armazenados do MySQL?

Como obter comportamento transacional em procedimentos armazenados do MySQL?

Publicado em 2024-11-12
Navegar:817

How to Achieve Transactional Behavior in MySQL Stored Procedures?

Procedimentos armazenados transacionais no MySQL

Executar múltiplas instruções SQL de maneira transacional dentro de um procedimento armazenado garante que todas as instruções sejam executadas com êxito ou nenhuma executar em tudo. Esse comportamento é fundamental para manter a consistência e integridade dos dados. Veja como você pode obter transações em seu procedimento armazenado MySQL:

Correção de erro de sintaxe

No snippet de código fornecido, há dois erros de sintaxe que estão impedindo o procedimento armazenado de se tornar transacional. A sintaxe correta é a seguinte:

DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING
BEGIN
    ROLLBACK;
END;

Este código declara um manipulador de saída que reverterá automaticamente quaisquer alterações se ocorrer uma exceção ou aviso SQL durante a execução do procedimento armazenado. As vírgulas entre as condições do manipulador de saída e o ponto e vírgula no final da instrução DECLARE são cruciais para o funcionamento adequado do procedimento armazenado.

Exemplo

Uma vez os erros de sintaxe foram corrigidos, o procedimento armazenado pode se tornar transacional colocando as instruções SQL dentro de um bloco START TRANSACTION...COMMIT. Aqui está um exemplo de procedimento armazenado transacional:

BEGIN

DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING
BEGIN
    ROLLBACK;
END;

START TRANSACTION;

    -- Your SQL statements here

COMMIT;

END

Uso

Para usar o procedimento armazenado transacional, basta chamá-lo a partir do código do seu aplicativo como um procedimento armazenado regular. Se todas as instruções SQL no procedimento armazenado forem executadas com êxito, a instrução COMMIT tornará essas alterações permanentes no banco de dados. Se ocorrer alguma exceção ou aviso SQL, a instrução ROLLBACK desfará automaticamente todas as alterações.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3