Partager via


COMMETTRE

S’applique à :case cochée oui Databricks SQL

Valide la transaction interactive actuelle, rendant permanentes toutes les modifications apportées aux tables modifiées. Pour connaître les exigences et les modèles d’utilisation pour les transactions interactives, consultez Transactions interactives.

Syntaxe

COMMIT [ TRANSACTION | WORK ]

Paramètres

Cette instruction n’a aucun paramètre.

Remarques

  • S’il n’existe aucune transaction active, l’exécution COMMIT entraîne une erreur NO_ACTIVE_TRANSACTION .
  • En COMMIT cas d’échec, la transaction est abandonnée et vous devez exécuter ROLLBACK explicitement pour réinitialiser l’état de la transaction avant de commencer une nouvelle transaction. Les causes courantes des COMMIT défaillances incluent des conflits d'écriture avec d'autres transactions concurrentes.
  • Pour exécuter cette instruction, vous devez disposer d’une transaction active et d’autorisations appropriées sur tous les objets lus ou modifiés dans la transaction.

Exemples

Les exemples suivants montrent comment valider des transactions interactives.

Transaction de base

Exécutez chaque instruction séparément.

BEGIN TRANSACTION;
-- Insert a new record
INSERT INTO my_table VALUES (1, 'test');
-- Update records in another table
UPDATE another_table
SET value = 'updated'
WHERE id = 5;
-- Commit all changes in both tables atomically
COMMIT TRANSACTION;

Lecture de ses propres écritures

Exécutez chaque instruction séparément.

BEGIN TRANSACTION;
-- Insert new data
INSERT INTO customers VALUES (101, 'New Customer');
-- Update the newly inserted data
UPDATE customers SET name = 'Updated Customer Name' WHERE id = 101;
-- Query sees the updated value within the transaction
SELECT name FROM customers WHERE id = 101;
-- Returns 'Updated Customer Name'
-- Commit makes changes visible to other transactions
COMMIT;

Gérer l’échec de validation

En cas d’échec de COMMIT en raison de conflits ou d’autres erreurs, vous devez effectuer un retour en arrière explicite. Exécutez chaque instruction séparément.

BEGIN TRANSACTION;
-- Make changes
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
-- Attempt to commit
COMMIT;
-- If COMMIT fails (e.g., due to write conflict),
-- the transaction is aborted
-- You must explicitly roll back before starting a new transaction
ROLLBACK;