Harta Transaksi
Transaksi, yang sering dikenali dengan istilah ACID, mempunyai empat sifat umum utama.
- Atomisiti: Ini menjamin bahawa semua tugas di dalam unit kerja berjaya diselesaikan; yang lain, hanya pada titik kegagalan, prosesnya ditamatkan, dan proses sebelumnya dikembalikan ke keadaan lama.
- Ketekalan: Ini bermaksud bahawa setelah proses yang cukup dilakukan, kemas kini pangkalan data menyatakan dengan tepat.
- Pengasingan: Ia membantu transaksi untuk saling bekerjasama dan secara individu dan telus.
- Ketahanan: Ini memastikan bahawa sekiranya berlaku kerusakan sistem, hasil atau akibat dari transaksi yang dilakukan tetap berlaku.
Transaksi MySQL Berfungsi:
Dalam MySQL, dua istilah, Komit dan Rollback digunakan hanya untuk transaksi MySQL. Urus niaga bermula hanya dengan pernyataan BEGIN WORK dan selesai sama ada dengan deklarasi KOMIT atau deklarasi ROLLBACK. Arahan SQL merangkumi sebahagian besar urus niaga di antara penyataan permulaan dan penghentian. Siri acara seperti itu tidak kira bahasa pengaturcaraan tertentu yang digunakan. Anda akan membuat jalan yang sesuai dalam bahasa apa pun yang anda gunakan untuk membina aplikasi. Penyataan SQL di bawah ini dapat dilaksanakan dengan menggunakan ciri pertanyaan mysql ().
- MULAI: Mulakan proses atau transaksi anda dengan memberikan arahan BEGIN WORK SQL.
- Tambah PERINTAH SQL: satu atau lebih pernyataan SQL seperti SELECT, INSERT, UPDATE, dan DELETE, masing-masing. Sahkan walaupun tidak ada kesilapan dan semuanya sesuai dengan jangkaan anda.
- KOMITMEN: Arahan KOMIT mesti dikenakan setelah transaksi berjaya dilakukan, sehingga pengubahsuaian pada semua jadual yang berkaitan dapat berlaku sepenuhnya.
- KEMBALIKAN: Sekiranya berlaku kerosakan, memang wajar untuk menghantar arahan ROLLBACK untuk membalikkan setiap jadual yang ditentukan dalam transaksi ke keadaan sebelumnya.
- AUTOCOMMIT: Secara lalai, MySQL menerapkan pengubahsuaian secara kekal ke pangkalan data. Sekiranya AUTOCOMMIT ditetapkan ke 1 (standard), maka setiap pertanyaan SQL (sama ada di dalam transaksi atau tidak) dianggap sebagai transaksi yang selesai dan dilakukan sehingga selesai secara lalai. Untuk mengelakkan komit automatik, tetapkan AUTOCOMMIT ke 0.
Contoh 01: Mod AutoCommit Hidup:
MySQL beroperasi dengan fasa Autocommit yang dibenarkan secara lalai. Ini memastikan bahawa MySQL menyimpan perubahan pada cakera untuk membuatnya terus-menerus selagi kita menjalankan pertanyaan yang menyesuaikan (mengubah) jadual. Tidak perlu untuk membalikkan langkah. Mari cuba dengan mod AUTOCOMMIT. Buka shell baris perintah MySQL anda dan ketik kata laluan anda untuk memulakan.
Ambil contoh jadual 'buku' yang telah dibuat dalam 'data' pangkalan data. Buat masa ini, kami belum melakukan sebarang pertanyaan.
>> PILIH * DARI data.buku;
Langkah 2: Proses ini adalah untuk mengemas kini jadual 'buku'. Mari kita kemas kini nilai lajur 'Pengarang' di mana 'Nama' buku adalah 'Rumah'. Anda dapat melihat perubahan telah berjaya dilakukan.
>> KEMASKINI data.tempah SET Pengarang = 'Cristian Steward' DI MANA Nama = 'Rumah';
Dengan melihat sekilas jadual yang dikemas kini, kita mempunyai nilai pengarang yang diubah suai di mana 'name' adalah 'Home'.
>> PILIH * DARI data.buku;
Mari gunakan arahan ROLLBACK untuk mengembalikan perubahan dengan hanya menambah pertanyaan di bawah. Anda dapat melihat bahawa pertanyaan ROLLBACK tidak berfungsi di sini kerana ia menunjukkan bahawa '0 baris terjejas'.
>> ROLLBACK;
Anda juga boleh melihat jadualnya. Jadual tidak mendapat perubahan selepas pelaksanaan penyataan ROLLBACK setakat ini. Ini bermaksud bahawa ROLLBACK tidak berfungsi apabila kita mempunyai AUTOCOMMIT secara lalai.
>> PILIH * DARI data.buku;
Contoh 02: Mod AutoCommit Mati:
Untuk mengembalikan perubahan yang dibuat, mari cuba dengan mod mati AUTOCOMMIT. Dengan menggunakan contoh jadual 'buku' yang sama, kami akan melakukan beberapa perubahan padanya. Kami akan menggunakan deklarasi MULA TRANSAKSI untuk menyahaktifkan fasa auto-komit atau hanya menaip perintah di bawah ini untuk mematikan AUTOCOMMIT.
>> SET AUTOCOMMIT = 0;Katakan kita mempunyai 'buku' jadual yang sama dalam pangkalan data kita, dan kita harus membuat perubahan padanya. Kemudian kembalikan perubahan tersebut kepada yang lama lagi.
>> PILIH * DARI data.buku;
Sekiranya anda belum mematikan mod AUTOCOMMIT, mulailah dengan pertanyaan MULAI TRANSAKSI di shell baris perintah seperti di bawah.
>> MULAKAN TRANSAKSI;
Kami akan mengemas kini jadual yang sama menggunakan arahan UPDATE dengan menetapkan 'Pengarang' sebagai 'Aliana' di mana 'Nama' sebuah buku adalah 'Mimpi'. Lakukan dengan menggunakan arahan di bawah. Anda akan melihat bahawa perubahan akan dibuat dengan berjaya dan berkesan.
>> KEMASKINI data.tempah SET Autho = 'Aliana' DI MANA Nama = 'Mimpi';
Mari kita periksa sama ada pertanyaan di atas telah berfungsi dengan sempurna dan membuat perubahan pada jadual atau tidak. Anda boleh memeriksa jadual yang dikemas kini dengan menggunakan perintah SELECT di bawah seperti biasa.
>> PILIH * DARI data.buku;Anda dapat melihat bahawa pertanyaan telah berfungsi dengan baik, seperti yang ditunjukkan di bawah.
Sekarang, giliran perintah ROLLBACK untuk menjalankan fungsinya. Cuba arahan ROLLBACK di baris arahan anda untuk mengembalikan kemas kini baru-baru ini ke jadual.
>> ROLLBACK;
Mari kita periksa sama ada pertanyaan ROLLBACK telah berfungsi sebagaimana mestinya berfungsi atau tidak. Untuk ini, anda harus memeriksa jadual 'buku' sekali lagi dengan menggunakan perintah 'SELECT' seperti biasa.
>> PILIH * DARI data.buku;Anda dapat melihat dari output di bawah bahawa ROLLBACK akhirnya berjaya. Telah mengembalikan perubahan yang dibuat oleh pertanyaan UPDATE pada jadual ini.
Kesimpulan:
Itu sahaja untuk transaksi MySQL. Saya harap panduan ini dapat membantu anda melakukan transaksi MySQL dengan mudah.