Compartir a través de


COMETER

Se aplica a:casilla marcada como Sí Databricks SQL

Confirma la transacción interactiva actual, haciendo permanentemente todos los cambios en todas las tablas modificadas. Para conocer los requisitos y los patrones de uso de las transacciones interactivas, consulte Transacciones interactivas.

Sintaxis

COMMIT [ TRANSACTION | WORK ]

Parámetros

Esta instrucción no tiene parámetros.

Notas

  • Si no hay ninguna transacción activa, la COMMIT ejecución produce un error NO_ACTIVE_TRANSACTION .
  • Si COMMIT se produce un error, la transacción se anula y debe ejecutar ROLLBACK explícitamente para restablecer el estado de la transacción antes de comenzar una nueva transacción. Entre los motivos comunes de errores COMMIT se incluyen los conflictos de escritura con otras transacciones simultáneas.
  • Para ejecutar esta instrucción, debe tener una transacción activa y los permisos adecuados en todos los objetos leídos o modificados dentro de la transacción.

Ejemplos

En los ejemplos siguientes se muestra cómo confirmar transacciones interactivas.

Transacción básica

Ejecute cada instrucción por separado.

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;

Lectura y escritura propia

Ejecute cada instrucción por separado.

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;

Control del error de confirmación

Si COMMIT se produce un error debido a conflictos u otros errores, debe revertir explícitamente. Ejecute cada instrucción por separado.

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;