[mysql] Autoincrement fill the gaps?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- wes  -

- wes -

08/08/2007 09:09:00
Quote Anchor link
Ik heb een tabel: records

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
uidNumber | name | beheer
---------------------------
      2011 | test | 1
      2012 | test | 1
      2013 | test | 1
      2014 | test | 2
      2015 | test | 1
      2016 | test | 1
      2017 | test | 2
      2018 | test | 2
      2019 | test | 2
      2020 | test | 1


waar uidNumber een autoincrement key is.
Dit is uiteindelijk voor een linux systeem voor webdomain records. Nu is het zo dat er zodra ik een uid verwijder, ik daar een gat in mijn database krijg.

mn vraag is nu:
Is het mogelijk om bij het invoeren van een nieuwe record, te kijken of er nog een gat gedicht kan worden met een uidNumber. Zoja gebruik dat uidNumber, zo nee ga 'gewoon' met autoincrement laatste + 1 verder.
 
PHP hulp

PHP hulp

02/03/2024 06:57:08
 
Mebus  Hackintosh

Mebus Hackintosh

08/08/2007 09:22:00
Quote Anchor link
Der zijn hier al vaker discussies over geweest en voor zover ik mij kan herinneren krijg je er alleen maar een zeer grote rotzooi van... En is het dus ook niet slim dat je die gaten "opvult"
 
- wes  -

- wes -

08/08/2007 09:25:00
Quote Anchor link
ja maar die onzin heb ik allemaal niet nodig.
ik heb een bepaalde range die ik mag gebruiken waar ik voor betaal, ik wil niet dat ik 150 uids kan gebruiken en er maar 120 gebruik omdat er overal gaten in zitten.

dus vanaf hier
-------------------------------

geen gezeur over dat het niet handig is etcetc, daar ben ik me van bewust, maar tis nie anders
 
- SanThe -

- SanThe -

08/08/2007 09:43:00
Quote Anchor link
Af te raden. Maar tuurlijk kan het. Gewoon even vanaf 1 alle nummers oproepen uit de database en zodra er niks gevonden is kan je dat nummer gebruiken. De auto_increment zal je moeten verwijderen. Wel de kolom op 'UNIQUE' laten staan.

Misschien wel simpeler: Extra veld maken in de kolom waarin een 1 staat als ie op 'DELETE' staat en 0 als ie gewoon functioneel is. Dan hoef je alleen daar een SELECT op te doen en bij 'gevonden' de nieuwe gegevens er in en dat veld weer op 0 zetten.
 
- wes  -

- wes -

08/08/2007 10:40:00
Quote Anchor link
@santhe, i got that, maar als query :)


nouja nevermind ik heb het al gevonden

alle uids where uid+1 NOT IN diezelfde database
limit 0,1.

krijg je altijd de 1e gap , bij geen gaps de laatste
 
Frank -

Frank -

08/08/2007 11:38:00
Quote Anchor link
Met een auto_increment zorg je er voor dat je gegarandeerd een uniek record aanmaakt zonder dat je daar zelf input voor hoeft te geven. Nu heb je een uniek record en kun je deze eenvoudig terugvinden.

Alles draait dus om 'uniek record'. Verder heeft het geen enkele (!!!!) betekenis, ook niet als jij er met de nodige fantasie toch een betekenis aan toekent. Het heeft geen betekenis en dat zal het ook niet krijgen. Amen.

Voorbeeldje: 287, 2793, 7, 8462

Leg mij nu eens uit waar er nu een gat zit in deze 4 unieke records.
 
Winston Smith

Winston Smith

08/08/2007 11:46:00
Quote Anchor link
Quote:
ik heb een bepaalde range die ik mag gebruiken waar ik voor betaal, ik wil niet dat ik 150 uids kan gebruiken en er maar 120 gebruik omdat er overal gaten in zitten.
Dat is een aparte gang van zaken? Er zijn hosters waarbij je maar 1 of 2 databases mag gebruiken, maar een beperking op het aantal id's heb ik nog nooit gezien :P

Je zou er eventueel omheen kunnen werken door een XML-bestand te gebruiken?
Gewijzigd op 01/01/1970 01:00:00 door Winston Smith
 
- wes  -

- wes -

08/08/2007 12:39:00
Quote Anchor link
@frank
dat heeft het wel in mijn geval. jij weet ook dat als ik zeg dat ik zoiets wil, ik dat ook niet 'gewoon' kan doen zoals het zou moeten.

@kasper
ik zeg ook niet dat het om zoiets gaat


anywho ik heb de oplossing dus al, iedereen kan stoppen met miepen, not that i care
 
Bo az

Bo az

08/08/2007 12:44:00
Quote Anchor link
Ik heb een vermoeden dat het in dit geval beter zou zijn een extra kolom toe te voegen, 1 "id" auto_increment die gewoon voor een uniek nummertje zorgt op de normale manier en een uidNumber op de manier die je nu gevonden hebt zodat er geen gaten ontstaan.
 
- wes  -

- wes -

08/08/2007 12:44:00
Quote Anchor link
i did + zie boven
 
Jurgen assaasas

Jurgen assaasas

08/08/2007 12:45:00
Quote Anchor link
je betaalt toch niet voor bijv record 300 t/m 450? mij lijkt het logischer dat je gewoon betaald voor 150 records?
 
- SanThe -

- SanThe -

08/08/2007 13:33:00
Quote Anchor link
Jurgen schreef op 08.08.2007 12:45:
je betaalt toch niet voor bijv record 300 t/m 450? mij lijkt het logischer dat je gewoon betaald voor 150 records?

Voor records betalen is helemaal niet logisch. Eén record van 2 Gig neemt nog altijd meer ruimte in dan 1000 records van 5 Bytes.
 
Frank -

Frank -

08/08/2007 21:38:00
Quote Anchor link
wes schreef op 08.08.2007 12:39:
@frank
dat heeft het wel in mijn geval. jij weet ook dat als ik zeg dat ik zoiets wil, ik dat ook niet 'gewoon' kan doen zoals het zou moeten.
En daar ga jij dus de mist in, dit bestaat namelijk niet. Het is een uniek record en daarmee houdt iedere betekenis op.

Heb jij nog een stukje data met een bepaalde betekenis, bv. een volgorde of ouderdom, dan zul je dus een extra kolom moeten aanmaken. Dit heeft namelijk niets te maken met het unieke record.
Quote:
anywho ik heb de oplossing dus al, iedereen kan stoppen met miepen, not that i care
Yeah, right. De naam is toch Wes? En nu jij een keertje niet kan miepen moeten wij ook maar stoppen met miepen? Dacht het niet!!!

;)

Ps. Het verhaal over unieke records is wél serieus bedoelt.
 
M Ypma

M Ypma

08/08/2007 22:15:00
Quote Anchor link
maar wes,
je hebt mij en velen anderen erg nieuwsgierig gemaakt.
wat is nu die reden van een bepaalde range? leg dat eens uit... ik kan het me namelijk niet voorstellen en ben erg benieuwd waarom jij daar wel last van hebt...
 



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.