Ik heb een tabel: records


 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.
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"
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
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.
@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
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.
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?
@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
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.
i did + zie boven
je betaalt toch niet voor bijv record 300 t/m 450? mij lijkt het logischer dat je gewoon betaald voor 150 records?

Reageren