13. oktober 2003 - 15:00Der er
6 kommentarer og 1 løsning
Indeks, Unik og Primær?
Hejsa!
Jeg er igang med at fuske med noget MySQL og er stødt ind i et problem. Egentlig ikke et rigtigt stort problen, men mere en problemstilling.
Jeg har oprettet et table og indtastet en masse informationer. Det hele virker fint, men hvis jeg f.eks. sletter nr. 45 og opretter en ny bliver den kaldt 46! Hvordan får man databasen til at bruge de tomme pladser der kan komme når man sletter noget?!?
Hvis du kun sletter i toppen så kan det lige gå, men hvis du sletter midt i og vil forsøge at "rykke" de højere numre ned skal du muligvis ud og opdatere en masse fremmed nøgler - og det bliver hurtigt kaos.
Ideen er at jeg f.eks kan slette nr. 45 ud af 100 og næste gang jeg opretter data fylder den op i 45 og fortsætter med 101 derefter. Sådan at der ikke kommer huller i rækkefølgen...
Det bedste er nok bare at leve med huller i rækkefølgen.
Justering af auto_increment har du fået SQL kommandoen til.
En free list betyder at når du sletter en record så ryger id'en ned i en speciel tabel. Når der så skal tilføjes en ny checker du først om der er nogle genbrugs id'er i free list, hvis ja bruges den (og den slettes så fra free list), hvis nej så sættes bare en ny største værdi.
Det vil kræve noget kode. Men jeg tror mere på den end på at fifle op og ned med auto increment.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.