Hoe maak ik een custom auto increment kolom met SQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Pagina: « vorige 1 2

Ozzie PHP

Ozzie PHP

03/02/2021 16:23:52
Quote Anchor link
500.1000
1.1001

is niet oplopend

Nog een voorbeeld: klant 2 bestelt order 5, klant 1 bestelt order 6:

2.5
1.6

Maar waarom maak je het jezelf zo moeilijk? Waarom gebruik je niet gewoon 1 nummer? Waarom wil je iets samenstellen?
 
PHP hulp

PHP hulp

22/12/2024 11:35:27
 
Snelle Jaap

Snelle Jaap

03/02/2021 16:52:47
Quote Anchor link
Het gaat erom dat een getal oploopt, je kan voor de punt alles zetten wat je wilt. Een datum bijvoorbeeld of een prefix zoals order-. In dit geval een account id, volgens mij maak ik het me niet moeilijk zo hoor. Ik vind dit ook wat mooier staan op een factuur bijv, dan alleen: 1001
 
Ozzie PHP

Ozzie PHP

03/02/2021 17:03:17
Quote Anchor link
Als je prefix een woord is, dan is het geen probleem. Een nummer lijkt me echter een ander verhaal, want dat kan voor verwarring zorgen. Sowieso zou ik het eerst even navragen bij de Belastingtelefoon.

Dit kan prima:

ORD-2430
ORD-2431
ORD-2432

Daar zal de Belastingdienst niet moeilijk over doen.

Dit zullen ze vermoed ik niet kunnen waarderen:

22.2430
312.2431
185.2432

Ik zou het echt even navragen.

Maar wat is nu precies het probleem eigenlijk? Je kunt toch gewoon die waardes samenvoegen met een punt ertussen?
 

04/02/2021 15:40:54
Quote Anchor link
Wat je zoekt is CREATE SEQUENCE, en nee, dat werkt niet op MySQL.
Wel op alle andere databases zoals PostgreSQL, en zelfs op MariaDB.
Ik zie geen reden om nog MySQL te blijven gebruiken... (hint :-))
 
Ward van der Put
Moderator

Ward van der Put

04/02/2021 20:30:55
Quote Anchor link
Het gaat de Belastingdienst, of meer algemeen accountants, om de audit trail: er mogen geen facturen spontaan verschijnen of plotseling verdwijnen, want dan kan er bijvoorbeeld omzet worden verzwegen.

Naast de doorlopende factuurnummering van jaar op jaar, zijn er twee minder elegante nummeringen die ook lijken te worden toegestaan: een doorlopende nummering per boekjaar (meestal gelijk aan een kalenderjaar) en een doorlopende nummering per bedrijfsactiviteit (bijvoorbeeld per filiaal, omdat ze daar zelf nummerende kassa's hebben).

De hier gebruikte nummering per klant vanaf 33.1000 voor klant 33 roept vraagtekens op omdat (a) je moet kunnen verantwoorden waar dan factuur 33.0001 tot en met 33.0999 voor klant 33 zijn gebleven en (b) je moet kunnen verantwoorden wie precies klant 1 tot en met 33 zijn.

Dat zou ik zo niet doen. Niet alleen is het hoogst ongebruikelijk (en onbekend maakt onbemind). Het is ook nergens voor nodig: de debiteurgegevens moet je sowieso al op de factuur vermelden, dus facturen nummeren per klant is dubbelop.

Dat je een dubbele auto_increment nodig hebt, is code smell, de stank van code die stinkt.

En als je dan toch iets afwijkends doet? Registreer dan altijd wie wat wanneer waarom doet. Daarmee heb je zelfs bij uitzonderlijke afwijkingen nog steeds een controleerbare audit trail. Daarvoor zijn logs bijvoorbeeld bedoeld.
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.