En SQL, BEGIN et END sont utilisés comme marqueurs de limites de transaction pour garantir l'atomicité, la durabilité et l'isolement des opérations. BEGIN démarre une transaction et END valide ou annule la transaction. 1. BEGIN démarre une transaction. 2. Effectuer une opération (insertion, mise à jour, etc.). 3. COMMIT valide la transaction et rend les modifications permanentes. 4. ROLLBACK annule la transaction et annule les modifications.
Utilisation de BEGIN et END dans SQL
En SQL, BEGIN et END sont utilisés comme marqueurs de limite pour les transactions. Une transaction est une série d’opérations atomiques qui réussissent toutes ou échouent toutes. BEGIN et END sont utilisés pour regrouper ces opérations afin de garantir l’atomicité.
Usage
L'instruction BEGIN démarre une transaction, tandis que l'instruction END valide ou annule la transaction :
<code class="sql">BEGIN; -- 开始事务 -- 执行操作... COMMIT; -- 提交事务(使更改永久化) -- 或者 ROLLBACK; -- 回滚事务(撤消更改)</code>
Atomicité
L'atomicité d'une transaction signifie que soit toutes les opérations réussissent, soit toutes les opérations échouent. Si une erreur se produit lors d'une transaction, l'instruction ROLLBACK annule toutes les opérations qui ont été effectuées, restaurant ainsi la base de données dans l'état dans lequel elle se trouvait au début de la transaction.
Persistance
L'instruction COMMIT rend les modifications au sein d'une transaction permanentes. Une fois l'instruction COMMIT exécutée, ces modifications sont conservées dans la base de données, même en cas d'échec ou d'arrêt de l'application.
Isolation
Les transactions fournissent également une isolation, ce qui signifie que les modifications apportées à une transaction ne sont pas visibles par les autres transactions jusqu'à ce que l'instruction COMMIT soit exécutée. Cela permet d'éviter que les accès simultanés ne provoquent des incohérences de données.
Exemple
L'exemple suivant démontre l'utilisation de BEGIN et END en SQL :
<code class="sql">BEGIN; INSERT INTO customers (name, email) VALUES ('John Doe', 'john.doe@example.com'); UPDATE customers SET email = 'john.doe@new-example.com' WHERE id = 1; COMMIT;</code>
Dans cet exemple, l'instruction BEGIN démarre une transaction puis effectue deux opérations : insérer un nouveau client et mettre à jour l'e-mail d'un client existant. client . L'instruction COMMIT valide la transaction, rendant les modifications permanentes. Si une erreur se produit lors d'une insertion ou d'une mise à jour, l'instruction ROLLBACK annule les deux opérations.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!