Bagaimanakah MySQL Mengendalikan Transaksi Bersarang Menggunakan Savepoints?

Patricia Arquette
Lepaskan: 2024-11-28 03:50:22
asal
574 orang telah melayarinya

How Does MySQL Handle Nested Transactions Using Savepoints?

Transaksi Bersarang dalam MySQL

Tidak seperti sistem pengurusan pangkalan data lain tertentu, MySQL tidak menyokong transaksi bersarang secara asli. Ini bermakna anda tidak boleh membuat transaksi baharu dalam transaksi sedia ada. Walau bagaimanapun, MySQL InnoDB, enjin storan popular yang digunakan dalam MySQL, menawarkan penyelesaian untuk mengurus gelagat seperti transaksi bersarang melalui penggunaan titik simpanan.

SAVEPOINTS dalam InnoDB

Savepoints membolehkan anda mencipta pencapaian sementara dalam transaksi. Anda boleh mencipta dan menamakan titik simpan, dan kemudian kembali ke titik simpanan itu untuk membuat asal sebarang operasi yang berlaku selepasnya. Ini memberikan tahap kebutiran dan fleksibiliti yang serupa dengan transaksi bersarang.

Cara Menggunakan SAVEPOINTS

Untuk menggunakan savepoint dalam MySQL, anda boleh mengikuti langkah berikut:

  1. Mulakan transaksi menggunakan TRANSAKSI MULA arahan.
  2. Buat savepoint menggunakan arahan SAVEPOINT. Beri nama yang bermakna, seperti tran2.
  3. Lakukan sebarang operasi yang anda mahu sertakan dalam titik simpanan.
  4. Untuk melancarkan semula ke titik simpanan, gunakan perintah ROLLBACK TO diikuti dengan nama titik simpan.
  5. Jika anda ingin membatalkan keseluruhan transaksi, gunakan ROLLBACK arahan.

Contoh

Pertimbangkan contoh berikut:

CREATE TABLE t_test (id INT NOT NULL PRIMARY KEY) ENGINE=InnoDB;

START TRANSACTION;

INSERT
INTO    t_test
VALUES  (1);

SELECT  *
FROM    t_test;

 id
---
  1

SAVEPOINT tran2;

INSERT
INTO    t_test
VALUES  (2);

SELECT  *
FROM    t_test;

 id
---
  1
  2

ROLLBACK TO tran2;

SELECT  *
FROM    t_test;

 id
---
  1

ROLLBACK;

SELECT  *
FROM    t_test;

 id
---
Salin selepas log masuk

Dalam contoh ini, kami menunjukkan cara untuk mengembalikan semula ke titik simpanan (tran2) dan kemudian tarik balik keseluruhan transaksi.

Atas ialah kandungan terperinci Bagaimanakah MySQL Mengendalikan Transaksi Bersarang Menggunakan Savepoints?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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