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