Transaksi adalah sekumpulan operasi untuk bekerja dengan database (DB), digabungkan menjadi satu bundel atom.
(Diasumsikan bahwa Anda tahu apa itu database. Tapi nanti akan ada link ke artikel "apa itu")
Database transaksional (database yang bekerja melalui transaksi) mematuhi persyaratan ACID, yang menjamin keamanan data. Termasuk data keuangan =) Oleh karena itu, pengembang memilihnya.
Saya akan berbicara tentang apa itu transaksi. Bagaimana cara membukanya dan cara menutupnya. Dan mengapa penting untuk menutup transaksi. Dan kemudian, saat menulis kueri ke database, Anda akan memiliki pemahaman yang sadar tentang apa yang terjadi di sana, di balik terpal, dan mengapa Anda memerlukan komit wajib ini setelah pembaruan.
Kandungan
Apa itu transaksi
Transaksi adalah arsip untuk kueri ke database. Ini melindungi data Anda atas dasar semua atau tidak sama sekali.
Bayangkan Anda memutuskan untuk mengirim 10 file kepada teman Anda dalam sebuah messenger. Apa saja opsinya:
Lempar setiap file secara terpisah.
Taruh di arsip dan kirim arsipnya.
Sepertinya tidak banyak perbedaan. Tetapi bagaimana jika terjadi kesalahan? Koneksi akan terputus di tengah, server akan melakukan reboot, atau hanya memberikan kesalahan ...
Dalam kasus pertama, teman Anda akan menerima 9 file, tetapi tidak satu pun.
. . , . , . , « ».
, , ? ? ? , . ? , . , ! , , !
, :
— ?
— 10
— ? 9... , .
, . 100 2 ? « 1», « 2» , «hfdslafebx63542437457822nfhgeopjgrev0000444666589.xml» ... ! , .
! — . «, ». , , .
, . "" :
delete from 1 where = 1
insert into 2 values ('')
« » . , 1 , 2 ... ...
. 1!
-, — , . — , - . , « », , .
, . ( . connection, ). — , .
, . :
.
.
.
, . , .
, , . . . — , .
, . — .
. (, ), , -.
. Oracle , . MySql «start transaction».
2 :
COMMIT — ;
ROLLBACK — ;
, «», . , , .
, :
insert into clients (name, surname) values ('', '');
-- «» «»
, ! , select , , — ! .
! , . sql developer ( , ) select — .
, , :
insert into clients (name, surname) values ('', '');
commit;
. . . sql developer, , .
, : « » , ! ? .
. , . , . :
= «»
= «»
...
. select count — . 100 ! , . .
, - ! «» «», - . ... . rollback.
— ROLLBACK? . , . . .
. :
, «»;
495 499;
....
, . select , . «, , ? , ». .
- . . 3 , . 10 — , . , ...
. !
— , .
, (, insert , ...).
, . . ( connection) — , . — , , .
, . . :
COMMIT — ;
ROLLBACK — ;
, -, . . - . rollback, . ? - . , , .
() . — , (update, delete…) , commit /rollback — .
PS - untuk artikel yang lebih bermanfaat, lihat blog saya di bawah tag "berguna" . Dan video yang bermanfaat ada di saluran youtube saya