Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:
Databricks SQL
Geçerli işlemi geri alır ve işlemin başlangıcından bu yana yapılan tüm değişiklikleri atar. Etkileşimli işlemlere yönelik gereksinimler ve kullanım desenleri için bkz. Etkileşimli işlemler.
Sözdizimi
ROLLBACK [ TRANSACTION | WORK ]
Parametreler
Bu deyimin parametresi yok.
Notlar
- Etkin bir işlem yoksa yürütme
ROLLBACKbir hataya neden olmaz . - bir işlem içindeki bir işlem hatayla sonuçlanırsa, işlem durduruldu durumuna girer. Sonraki okuma ve yazma işlemleri, işlem kullanıcı tarafından açıkça geri alınana kadar bir hatayla reddedilir.
- Bu deyimi yürütmek için etkin bir işlem ve işlem içinde okunmuş veya değiştirilmiş tüm nesneler üzerinde uygun izinlere sahip olmanız gerekir.
Örnekler
Aşağıdaki örneklerde etkileşimli işlemleri geri alma işlemi gösterilmektedir.
Temel geri alma
Her deyimi ayrı bir hücrede çalıştırın:
BEGIN TRANSACTION;
-- Attempt an insert operation
INSERT INTO my_table VALUES (1, 'incorrect-value');
-- After discovering the mistake, rollback the transaction
-- (no changes are actually made to the tables)
ROLLBACK TRANSACTION;
Yürütme hatalarını işleme
İşlem içerisindeki bir deyim başarısız olduğunda, yeni bir işlem başlatmadan önce işlemi açıkça geri almanız gerekir. Her deyimi ayrı bir hücrede çalıştırın:
BEGIN TRANSACTION;
-- A query that causes a division by zero error
SELECT 1/0;
-- Throws error asking user to roll back the transaction
SELECT 1;
-- After error, user must roll back the transaction
-- as it cannot be committed
ROLLBACK TRANSACTION;
Ayrıştırıcı hatalarını ele alma
Ayrıştırıcı hataları için de açık geri alma gerekir. Her deyimi ayrı bir hücrede çalıştırın:
BEGIN TRANSACTION;
-- A query that causes a parsing error
SELLLLLLECT 1;
-- Throws error asking user to roll back the transaction
SELECT 1;
-- After error, user must roll back the transaction
-- as it cannot be committed
ROLLBACK TRANSACTION;
Koşullu geri alma
İş kurallarına göre koşullu mantık için kullanabilirsiniz ROLLBACK . Her deyimi ayrı bir hücrede çalıştırın:
BEGIN TRANSACTION;
-- Make changes
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
-- Check a condition and rollback if not met
BEGIN
DECLARE total_balance INT;
SET total_balance = (SELECT SUM(balance) FROM accounts);
IF total_balance < 0 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
END;
Başarısız commit işleminden sonra geri dönüş
Başarısız COMMIT olursa, açıkça geri dönmeniz gerekir. Her deyimi ayrı bir hücrede çalıştırın:
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;
İlgili makaleler
- BEGIN TRANSACTION (etkileşimli işlemler): Etkileşimli bir işlem başlatın
- COMMIT: Etkileşimli bir işlem gerçekleştirme ve tüm değişiklikleri kalıcı hale getirme
- ATOMIC bileşik deyimi (etkileşimli olmayan işlemler): Otomatik işleme ve geri alma ile birden çok SQL deyimini tek bir atomik işlem olarak çalıştırma
- İşlemler: İşlem desteğine, gereksinimlere ve sınırlamalara genel bakış
- İşlem modları: Etkileşimli olmayan ve etkileşimli işlemler için ayrıntılı desenler ve örnekler