pardon mais où est-ce que je fais dans ce trigger une insertion ? le INSERT indiqué ne fait pas d'insertion , c'est lorsqu'il y a INSERT sur la table que le trigger se déclencheEnvoyé par Artemus24
ce trigger est fait pour
1- utiliser les séquences (ou générateur) comme clé primaire
2- faire une numérotation automatique sans trou (du moins je crois) du ticket et ce directement sur le serveur sans intervention de programme
3- comme la clé primaire est le générateur accéder au dernier enregistrement devient donc facile et rapide
les SEQUENCE anciennement GENERATEUR sont l'équivalent de l'auto-incrément à la différence près qu'il faut le gérer soit même c'est le but du trigger
c'est l'objet de GEN_ID(GEN_VENTE_ID, 0) sans incrément et de GEN_ID(GEN_VENTE_ID, <n>) avec incrémentmySQL ....La récupération de la dernière valeur de cet auto incrément est instantanée.
@alanglet non, tu ne pinailles pas, je n'ai certainement pas écarté tous les risques, cependant une erreur serait levée à cause de l'index sur NUMEROTICKET (quoique je viens de m'apercevoir que je n'avais pas indiqué qui devait être UNIQUE , tellement cela me semblait évident , je vais faire la correction)
si Chekkal (ou quelqu'un d'autre) se sent le courage de faire un programme test avec thread (pour simuler plusieurs demandes quasi simultanées à partir d'un même poste) et de le déployer sur plusieurs postes libre à lui, je ne pense pas en avoir le temps ni le courage . Dans l'environnement d'une supérette je ne pense pas que 2 demandes arrivent dans la microseconde cependant !
@Barbibulle à moins que IBexpert arrive à faire ça aussi ? (peut être pas dans sa version lite quand même )
la seule solution qui empêcherait les collisions serait une solution multi-tiers (DATASNAP pour les Delphistes) et non client/serveur
Partager