Adakah COMMIT TRANSACTION Omission Automatically Rollback Transactions?

Susan Sarandon
Lepaskan: 2024-10-24 15:12:02
asal
885 orang telah melayarinya

Does COMMIT TRANSACTION Omission Automatically Rollback Transactions?

Pemulihan Automatik jika TRANSAKSI KOMIT Ditinggalkan

Dalam pernyataan SQL yang diberikan:

START TRANSACTION;
BEGIN;
INSERT INTO prp_property1 (module_name,environment_name,NAME,VALUE) VALUES ('','production','','300000');

/** Assume there is syntax error SQL here...**/
Blah blah blah

DELETE FROM prp_property1 WHERE environment_name = 'production';
COMMIT TRANSACTION;
Salin selepas log masuk

Timbul persoalan sama ada urus niaga digulung semula secara automatik kerana penyata TRANSAKSI COMMIT tidak pernah dicapai kerana ralat sintaks.

Gelagat Balik Transaksi

Bertentangan dengan andaian, urus niaga tidak secara automatik digulingkan semula apabila menghadapi ralat. Tingkah laku ini biasanya dilaksanakan dalam tetapan aplikasi klien. Sebagai contoh, pelanggan baris arahan MySQL menamatkan pelaksanaan dan keluar apabila ralat, yang mengakibatkan penarikan balik mana-mana transaksi yang sedang berjalan.

Apabila membangunkan aplikasi tersuai, pembangun mempunyai kawalan ke atas dasar pemulangan semula transaksi. Walau bagaimanapun, pengecualian tertentu wujud:

  • Menghentikan sambungan pangkalan data sentiasa melancarkan urus niaga yang sedang berjalan.
  • Kebuntuan atau tamat masa tunggu kunci juga secara tersirat mencetuskan pemulangan semula.

Di luar senario khusus ini, ralat tidak menyebabkan penarikan balik secara automatik. Ralat dikembalikan dan pembangun bebas untuk memutuskan tindakan seterusnya, termasuk melakukan transaksi walaupun terdapat ralat.

Atas ialah kandungan terperinci Adakah COMMIT TRANSACTION Omission Automatically Rollback Transactions?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!