Ce que tu montres c'est le code d'insertion, ce que je montrais c'est le code de gestion des la transaction (autour de l'insertion)... La notion de transaction en DB est primordial pour les modifications... exemple:
J'ai une table Catégorie de films, une table Film, et une "cross-table" entre films et catégories... (un film a une catégorie au moins)...
Je veux rajouter un film, avec une liste de catégories...
Hors transactions, j’insère le film, je récupère son ID, et j’insère les couples (category-id,film-id) dans la "cross-table"... Que se passe-t-il si une erreur survient pendant les insertions dans la cross-table ? Un film a moitié inséré (avec 0 ou pas toutes les catégories)...
La transaction permet de rendre l'ensemble des insertions "atomique", ou tout est validé, ou rien ne l'est.... si une erreur se produit pendant l'insertion des couples category/film la transaction n'est pas validé, et un "rollback" est opéré, rien n'a été inséré dans la DB. Si tout se passe bien, un "commit" est opéré, et tout est sauvegardé. Ca permet d'afficher l'erreur à l'utilisateur sans doute possible: une erreur s'est produite, rien ne s'est passé.
Partager