Avatar billede foxmulder Nybegynder
07. februar 2004 - 13:04 Der er 6 kommentarer og
1 løsning

insert i et "tomt" id

Når jeg bruger auto-incresement lægger en INSERT sætning jo altid 1 til det største ID i min database. Dette sker jo også selvom jeg sletter mellemliggende ID'er. På den måde har jeg en ID-rækkefølge som kunne se sådan ud: 1,3,10,15, 100,150,500.

Mine ID'er vil på den måde på sigt blive tårn høje - vil det udgøre noget problem?

Jeg kunne godt tænke mig at når jeg lavede en INSERT, at den så fandt det laveste "ledige" ID og indsatte rækken deri. Kan det overhovedet lade sig gøre og vil der være nogen fordel ved det? -eller er det bare en tåbelig ide? :)
Avatar billede lap Nybegynder
07. februar 2004 - 14:43 #1
lad endelig bare auto-increment blive et stort tal - det er sjældent et problem, og det er nemmest programmeringsmæssigt at lade tallet vokse "uendeligt".
Avatar billede arne_v Ekspert
07. februar 2004 - 17:58 #2
Behold dem.

Det er en ret kompleks process ar "ordne" de ID'ere, fordi udover at skulle finde
værdierne skal de også opdateres i alle fremmednøglerne som peger på dem.

Nogle DELETE+INSERT og problemet er genopstået.
Avatar billede erikjacobsen Ekspert
07. februar 2004 - 19:48 #3
...men sørg for at feltet er defineret tilstrækkeligt stort, fx. med INT(11)
Avatar billede arne_v Ekspert
07. februar 2004 - 20:18 #4
Jeg troede faktisk kun at de 11 påvirkede bredden på direkte output og
ikke max. værdi ...
Avatar billede erikjacobsen Ekspert
07. februar 2004 - 20:29 #5
Jow, man kan skrive bare skrive INT, men der er også TINYINT, SMALLINT og
MEDIUMINT.

(og var der ikke en tidlig mysql, hvor der skulle et tal efter INT??)
Avatar billede arne_v Ekspert
08. februar 2004 - 12:13 #6
På den måde. INT giver selvfølgelig mere end de små.

(muligt - omend det ikke ville være standard compliant så)
Avatar billede foxmulder Nybegynder
09. juni 2004 - 10:29 #7
ok tak
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester