[MySql] Autonummering

Pagina: 1
Acties:
  • 128 views sinds 30-01-2008
  • Reageer

  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 22-08 19:34
Ik heb een database gemaakt met Mysql en daar zitten volgende velden in:
ID (autonummering)
Gebruikersnaam (Varchar)
Wachtwoord (Varchar)
Email (Varchar)

Ik heb uiteraard volledige toegang tot de site waarin de database wordt opgeroepen. Nu kan ik spelers verwijderen, maar als ik dit doe dan klopt de nummering van ID niet meer. Dan heb je het volgende
1 Piet
2 Kevin
4 Loesje

Hoe zorg ik ervoor dat die altijd elkaar opvolgen? Ik denk niet dat het mogelijk is met het type autonummering :(

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Neen, met autonummering is dit inderdaad niet mogelijk, en is dat belangrijk?

(Er zijn hier de laatste tijd wel nogal veel topics geweest over dit onderwerp hoor).

https://fgheysels.github.io/


  • Rashann
  • Registratie: Maart 2000
  • Laatst online: 24-08 07:20

Rashann

Zoek de hond...

Niet inderdaad... maar dat wil je meestal ook niet (anders moet je alle koppeling aan zoiemand ook helemaal gaan veranderen, en van iedereen die een hoger nummer heeft...)

Heb je een goede reden om de nummers opvolgend te houden?

If nothing is written below, I was the last to reply...


  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 22-08 19:34
nee , er is geen goede reden, maar ziet wel mooier uit in mijn database :P

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Kan niet in mysql.
Tenzij je heel moeilijk gaat doen:
lock table
count(*) from tabel
insert waarde met count + 1
unlock table

Nadelen: crashes van je applicatie zijn erg lastig, als je veeel inserts wilt doen wordt dit extreem sloom, het is vies en hoort niet door je applicatie zo gedaan te worden.

Kortom: wat boeit het dat ze niet perse opvolgen? Zodra je eentje delete zou je dan ook alle id's weer willen verwijderen of proberen die gaten weer op te vullen??
Als je dat echt belangrijk vindt: succes ;) ik betwijfel alleen of het je echt lukt (nofi, maar het is gewoon een rotklus die ik de moeite absoluut niet waard zou vinden)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

ddkiller0900 schreef op 29 augustus 2002 @ 15:37:
nee , er is geen goede reden, maar ziet wel mooier uit in mijn database :P

je database ziet daar niks van.
je gebruikers zien er niks van.

alleen de database administrator ziet het en hem zou het niks moeten schelen ;)

  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 22-08 19:34
Mja, ik vroeg het me af of het Überhaupt mogelijk was >:)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

ddkiller0900 schreef op 29 augustus 2002 @ 15:43:
Mja, ik vroeg het me af of het Überhaupt mogelijk was >:)

Jahoor is het wel.
Maar als je geen triggers op je db kan uitvoeren wordt het wel erg moeilijk.

  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Het is op zich niet zo heel erg moelijk. Als je tenminste nooit meer dan één record tegelijk verwijderd. Moet je wel de autonummering uitzetten.
Vervolgens kun je dan bij het verwijderen gewoon alle records die een groter ID hebben dan het zojuist verwijderde record, het ID met 1 verlagen. Overigens erg slecht voor je performance.
Een andere mogelijkheid is om bij het verwijderen het laatste record het ID te geven van het verwijderde record.

Maar alle mogelijkheden blijven stukker smeriger dan een paar gaatjes in je nummering.

Never underestimate the power of

Pagina: 1