15/11/2006

MySQL beginner

Filed under: — cybrarian @ 5:06 pm

Op zoek naar een methode om automatisch een oplopend nummer te laten maken door MySQL kwam ik terecht op een Nederlandstalige site met beginnersuitleg: MySQL Cursus – 29 juni 2003 – Erik Bregman

Mijn tellerprobleem is er niet mee opgelost. MySQL maakt automatisch een hoger nummer aan voor de id van een tabel (auto-increment). En eigenlijk is dat een “intern” nummer, alleen bedoeld om records uit elkaar te kunnen houden (zie discussie AutoKeysVersusDomainKeys

Maar stel dat je in 1 tabel een drietal kolommen hebt waarin je unieke nummers wil. Of 1 kolom waarin je 3 nummeringen wil (onderscheid door type veld in ieder record).

Voorbeeld: order, levering en factuur waarvan je telkens een nummer, een datum en een waarde wil opslaan in 1 tabel.

Hoe maak je een nieuwe factuurlijn met een uniek factuurnummer dat doortelt op het vorige voorkomende factuurnummer. En dat zonder dat iemand anders net op dat moment er ook een maakt met hetzelfde nummer. Als je het programma het hoogste bestaande nummer laat nemen en er een bijtellen is er geen enkele garantie dat ondertussen niet iemand anders net hetzelfde doet, en sneller bewaart dan jij.

En in dezelfde tabel wil je een even uniek leveringsnummer of ordernummer kunnen maken.

Iemand een idee? “(dead)locking”?

Powered by WordPress