La transaction est un ensemble d'opérations permettant de travailler avec une base de données (DB), combinées en un seul bundle atomique.
(On suppose que vous savez ce qu'est une base de données. Mais un peu plus tard, il y aura un lien vers l'article "qu'est-ce que c'est")
Les bases de données transactionnelles (bases de données qui fonctionnent via des transactions) sont conformes aux exigences ACID, qui garantissent la sécurité des données. Y compris les données financières =) Par conséquent, les développeurs les choisissent.
Je vais parler de ce qu'est une transaction. Comment l'ouvrir et comment le fermer. Et pourquoi est-il important de clôturer la transaction. Et puis, lors de l'écriture de requêtes dans la base de données, vous aurez une compréhension consciente de ce qui se passe là -bas, sous le capot, et pourquoi vous avez besoin de ce commit obligatoire après la mise à jour.
Contenu
Qu'est-ce qu'une transaction
Une transaction est une archive pour les requêtes dans la base de données. Il protège vos données sur la base du tout ou rien.
Imaginez que vous décidez d'envoyer à un ami 10 fichiers dans un messager. Quelles sont les options:
Jetez chaque fichier séparément.
Mettez-les dans l'archive et envoyez l'archive.
Il semble qu'il n'y ait pas beaucoup de différence. Mais que faire si quelque chose ne va pas? La connexion tombera au milieu, le serveur redémarrera, ou donnera simplement une erreur ...
Dans le premier cas, votre ami recevra 9 fichiers, mais pas un.
. . , . , . , « ».
, , ? ? ? , . ? , . , ! , , !
, :
— ?
— 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 - pour des articles plus utiles, regardez mon blog sous la balise "utile" . Et des vidéos utiles sont sur ma chaîne youtube