Tutorial klasik...login
Tutorial klasik SQLite
pengarang:php.cn  masa kemas kini:2022-04-13 17:05:02

Urus niaga SQLite


Transaksi ialah unit kerja yang dilakukan pada pangkalan data. Transaksi ialah unit atau urutan kerja yang diselesaikan dalam urutan logik Ia boleh diselesaikan secara manual oleh pengguna atau secara automatik oleh beberapa program pangkalan data.

Transaksi merujuk kepada satu atau lebih sambungan yang menukar pangkalan data. Contohnya, jika anda mencipta rekod atau mengemas kini rekod atau memadam rekod daripada jadual, anda sedang melakukan transaksi pada jadual itu. Adalah penting untuk mengawal urus niaga untuk memastikan integriti data dan mengendalikan ralat pangkalan data.

Malah, anda boleh menggabungkan banyak pertanyaan SQLite ke dalam kumpulan dan melaksanakan semuanya bersama-sama sebagai sebahagian daripada transaksi.

Atribut urus niaga

Urus niaga mempunyai empat atribut standard berikut, biasanya ACID berdasarkan akronim:

  • Atomicity ): Pastikan bahawa semua operasi dalam unit kerja selesai dengan jayanya, jika tidak, urus niaga akan ditamatkan apabila gagal dan operasi sebelumnya akan dikembalikan ke keadaan sebelumnya.

  • Ketekalan: Memastikan pangkalan data bertukar keadaan dengan betul pada transaksi yang berjaya dilakukan.

  • Pengasingan: Jadikan operasi transaksi bebas dan telus.

  • Ketahanan: Memastikan keputusan atau kesan transaksi yang dilakukan berterusan sekiranya berlaku kegagalan sistem.

Kawalan Transaksi

Gunakan arahan berikut untuk mengawal urus niaga:

  • MULAKAN TRANSAKSI: Mulakan pemprosesan transaksi.

  • KOMIT: Simpan perubahan atau anda boleh menggunakan perintah TAMAT TRANSAKSI.

  • GOLONG SEMULA: Balikkan perubahan.

Arahan kawalan transaksi hanya digunakan dengan arahan DML INSERT, UPDATE dan DELETE. Ia tidak boleh digunakan semasa membuat jadual atau menjatuhkan jadual kerana operasi ini dilakukan secara automatik dalam pangkalan data.

Arahan BEGIN TRANSAKSI

Transaksi boleh dimulakan menggunakan arahan BEGIN TRANSACTION atau arahan BEGIN yang mudah. Urus niaga sedemikian biasanya berterusan sehingga perintah COMMIT atau ROLLBACK seterusnya ditemui. Walau bagaimanapun, urus niaga juga akan ditarik balik apabila pangkalan data ditutup atau ralat berlaku. Berikut ialah sintaks mudah untuk memulakan transaksi:

BEGIN;

or 

BEGIN TRANSACTION;

Perintah COMMIT Perintah

COMMIT ialah perintah urus niaga yang digunakan untuk menyimpan perubahan yang dipanggil oleh urus niaga ke pangkalan data.

Arahan COMMIT menyimpan semua transaksi sejak perintah COMMIT atau ROLLBACK terakhir ke pangkalan data. Sintaks perintah

COMMIT adalah seperti berikut:

COMMIT;

or

END TRANSACTION;

Arahan ROLLBACK Perintah

ROLLBACK ialah perintah transaksi yang digunakan untuk membuat asal transaksi yang belum disimpan ke pangkalan data.

Arahan ROLLBACK hanya boleh digunakan untuk membuat asal transaksi sejak perintah COMMIT atau ROLLBACK yang terakhir dikeluarkan.

Sintaks arahan ROLLBACK adalah seperti berikut:

ROLLBACK;

Contoh

Andaikan jadual SYARIKAT mempunyai rekod berikut:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Sekarang, mari kita mulakan transaksi dan mulakan dari Rekod dengan umur = 25 dipadamkan daripada jadual Akhirnya, kami menggunakan arahan ROLLBACK untuk membatalkan semua perubahan.

sqlite> BEGIN;
sqlite> DELETE FROM COMPANY WHERE AGE = 25;
sqlite> ROLLBACK;

Semak jadual SYARIKAT, masih terdapat rekod berikut:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Sekarang, mari kita mulakan transaksi lain dan padamkan rekod dengan umur = 25 daripada jadual, dan akhirnya kita menggunakan Perintah COMMIT untuk melakukan semua Perubahan.

sqlite> BEGIN;
sqlite> DELETE FROM COMPANY WHERE AGE = 25;
sqlite> COMMIT;

Semak jadual SYARIKAT, terdapat rekod berikut:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
3           Teddy       23          Norway      20000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Laman web PHP Cina