Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения:
Databricks SQL
Фиксирует текущую интерактивную транзакцию, делая все изменения во всех измененных таблицах постоянными. Сведения о требованиях и шаблонах использования для интерактивных транзакций см. в разделе "Интерактивные транзакции".
Синтаксис
COMMIT [ TRANSACTION | WORK ]
Параметры
Это выражение не имеет параметров.
Примечания
- Если активная транзакция
COMMITотсутствует, выполнение приводит к ошибке NO_ACTIVE_TRANSACTION . - При сбое
COMMITтранзакция прерывается, и необходимо явно запуститьROLLBACK, чтобы сбросить состояние транзакции перед началом новой транзакции. Распространенные причиныCOMMITсбоев включают конфликты записи с другими параллельными транзакциями. - Для выполнения этой инструкции необходимо иметь активную транзакцию и соответствующие разрешения для всех объектов, считываемых или измененных в транзакции.
Примеры
В следующих примерах показано, как зафиксировать интерактивные транзакции.
Базовая транзакция
Запустите каждую инструкцию отдельно.
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;
Чтение собственных записей
Запустите каждую инструкцию отдельно.
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;
Обработка сбоя фиксации
При сбое COMMIT из-за конфликтов или других ошибок необходимо однозначно откатить. Запустите каждую инструкцию отдельно.
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;
Связанные статьи
- BEGIN TRANSACTION (интерактивные транзакции): начало интерактивной транзакции
- ROLLBACK: откат интерактивной транзакции и отмена всех изменений
- Составная инструкция ATOMIC (неинтерактивные транзакции): выполнение нескольких инструкций SQL в виде одной атомарной транзакции с автоматической фиксацией и откатом
- Транзакции: обзор поддержки транзакций, требований и ограничений
- Режимы транзакций: подробные шаблоны и примеры для неинтерактивных и интерактивных транзакций