Skip to content

WIP Fix #232 : S'assure de l'unicité du n° de facture via un lock SQL

Created by: JocelynDelalande

Évite l'insertion concurente d'un même n° de facture.

Utilise la commande SQL « LOCK TABLES ».

Je pense que cette solution offre davantage de sécurité que les sous-transactions, ces dernières n'étant fiables que pour annuler un lot de changements si l'un de ceux-ci viole une contrainte d'intégrité, ce qui n'est pas le cas ici.

Dans le cas présent, pour prendre la décision de ROLLBACK, il faudrait faire un SELECT à la fin de la sous-transaction pour vérifier l'état des tables après insertion, et ça ne serait pas suffisant : une insertion pourrait avoir lieu entre ce SELECT et la fin de notre transaction.

Le prix de la présente soluction (LOCK TABLES) est une petite latence lorsqu'une autre requête est en concurence avec une validation de facture.

Merge request reports