COMMIT

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL

Véglegesíti az aktuális interaktív tranzakciót, így az összes módosítás véglegesítve lesz az összes módosított táblában. Az interaktív tranzakciókra vonatkozó követelményekről és használati mintákról az Interaktív tranzakciók című témakörben olvashat.

Szemantika

COMMIT [ TRANSACTION | WORK ]

Paraméterek

Ez az utasítás nem rendelkezik paraméterekkel.

Jegyzetek

  • Ha nincs aktív tranzakció, a COMMIT végrehajtás NO_ACTIVE_TRANSACTION hibát eredményez.
  • Ha COMMIT nem sikerül, a tranzakció megszakad, és az új tranzakció megkezdése előtt explicit módon kell futtatnia ROLLBACK a tranzakció állapotának alaphelyzetbe állításához. A hibák gyakori COMMIT okai közé tartozik az írási ütközések más egyidejű tranzakciókkal.
  • Az utasítás végrehajtásához aktív tranzakcióval és megfelelő engedélyekkel kell rendelkeznie a tranzakcióban beolvasott vagy módosított összes objektumhoz.

Examples

Az alábbi példák az interaktív tranzakciók véglegesítését mutatják be.

Alapszintű tranzakció

Minden utasítást külön futtasson.

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;

Saját írások olvasása

Minden utasítást külön hajtson végre.

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;

Véglegesítési hiba kezelése

Ha COMMIT ütközések vagy egyéb hibák miatt meghiúsul, explicit módon vissza kell állítania. Minden utasítást külön futtasson.

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;