Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:
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
COMMITvégrehajtás NO_ACTIVE_TRANSACTION hibát eredményez. - Ha
COMMITnem sikerül, a tranzakció megszakad, és az új tranzakció megkezdése előtt explicit módon kell futtatniaROLLBACKa tranzakció állapotának alaphelyzetbe állításához. A hibák gyakoriCOMMITokai 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;
Kapcsolódó cikkek
- BEGIN TRANSACTION (interaktív tranzakciók): Interaktív tranzakció indítása
- VISSZAÁLLÍTÁS: Interaktív tranzakció visszaállítása és az összes módosítás elvetése
- ATOMIC összetett utasítás (nem interaktív tranzakciók):Több SQL-utasítás futtatása egyetlen atomi tranzakcióként automatikus véglegesítéssel és visszaállítással
- Tranzakciók: A tranzakciótámogatás, a követelmények és a korlátozások áttekintése
- Tranzakciós módok: Részletes minták és példák nem interaktív és interaktív tranzakciókhoz