bonjour j'aimerai créer une table facture et utiliser auto_increment mais j'aimerai ne pas avoir FAC1 / FAC2 / FAC3 mais plutot FAC00001 / FAC00002 / FAC00003
comment faire s'il vous plait ?
Version imprimable
bonjour j'aimerai créer une table facture et utiliser auto_increment mais j'aimerai ne pas avoir FAC1 / FAC2 / FAC3 mais plutot FAC00001 / FAC00002 / FAC00003
comment faire s'il vous plait ?
L'auto-incrémentation ne fonctionne que sur une colonne de type entier. Il faut donc faire un trigger à l'insertion pour construire la valeur du numéro de facture souhaité.
Ceci n'empêche pas une colonne auto-incrémentée et qui servira de clé primaire ; bien au contraire !
oui mon id est un type int()
donc je fais un trigger sur ma table facture, je récupère le numéro dans inserted et je rajoute 0000 en concaténation ?
À voir en pratique, je ne l'ai jamais fait, mais c'est l'idée.
ou alors le crée une fonction en php tout bêtement qui compte le nombre de caractères.
Je retourne le ID de la facture exemple 34.
je compte length donc 2. Puis vu que je veux 6 caractères je rajoute en php 0000.
Sa peut marcher et m'éviter des trucs trop compliqué non ?
Ça veut dire que ton insertion de facture se fera en 3 temps :
1) Insertion d'une nouvelle facture sans numéro.
2) Récupération de INSERTED_ID.
3) UPDATE pour mettre le numéro de facture.
En principe, avec un TRIGGER tu ne devrais avoir besoin que d'une seule transaction vers le serveur MySQL.