Avatar billede hoejgaard Juniormester
10. april 2008 - 21:15 Der er 17 kommentarer og
1 løsning

Duplicate entry

Jeg får når jeg indsætter noget i en tabel følgende meddelelse :
Duplicate entry '2147483647' for key 1

Det er et auto_increment felt, ved ikke hvorfor den indsætter denne værdi igen og igen ??
de andre værdier i feltet er meget mindre...
Avatar billede arne_v Ekspert
10. april 2008 - 21:20 #1
Proev:

ALTER TABLE tabelnavn AUTO_INCREMENT = storvaerdi
Avatar billede hoejgaard Juniormester
10. april 2008 - 21:29 #2
okay det virkede..
Men hvordan kan det være den begynder at indsætte '2147483647' ??
Avatar billede arne_v Ekspert
10. april 2008 - 21:37 #3
Det ved jeg ikke. Det er stoerst mulige 32 bit signed integer.
Avatar billede olebole Juniormester
10. april 2008 - 21:50 #4
<ole>

Et INT-felt, sat til 'unsigned', kan indeholde tal fra 0 til 4294967295

Er det ikke sat til 'unsigned', kan det indeholde tal fra -2147483648 til 2147483647

/mvh
</bole>
Avatar billede olebole Juniormester
10. april 2008 - 21:54 #5
Prøver du at indsætte et tal i et felt, og tallet er større, end feltet kan indeholde, indsættes i stedet det største tal, feltet kan tage
Avatar billede hoejgaard Juniormester
12. april 2008 - 17:05 #6
ja men det undrer mig bare at den ikke tager det næste tal i rækkefølgen når det er sat til autoincrement...
Avatar billede arne_v Ekspert
12. april 2008 - 17:10 #7
2147483647 er størst mulige værdi (for signed 32 bit integer).

Der er ikke noget næste tal.
Avatar billede hoejgaard Juniormester
16. april 2008 - 18:08 #8
arne v
jo i min tabel løber den feks fra 1 til 35, så burde næste værdi da være 36 og ikke 2147483647. Eller er det mig der er forkert på den ??
Avatar billede arne_v Ekspert
16. april 2008 - 18:17 #9
Du kan godt have vaerdier 1..35 i tabellen men at auto increment pointeren staar til
2147483647 !
Avatar billede olebole Juniormester
16. april 2008 - 23:04 #10
Hvis du f.eks. indsætter 1000 rækker og sletter de 990, vil den næste post i DB'en få skrevet 1001 i auto-feltet. Pointeren stiller sig ikke ned lige efter højeste tal.

Forestil dig situationen, hvor andre tabeller relaterer til det pågældende felt og de sletter 990 rækker. Så ville du få et frygteligt rod, hvis pointeren flyttede sig  ;o)
Avatar billede hoejgaard Juniormester
25. maj 2008 - 16:33 #11
Undskyld ventetiden..
Jamen det underlige er, at jeg ikke har slettet poster, og den næste post i rækken skulle være 36 og ikke 2147483647.
Hvad styrer hvad auto increment pointeren står til ??
Avatar billede arne_v Ekspert
25. maj 2008 - 16:44 #12
Det er en oplysning som MySQL holder styr på internt.

Enten er der lavet noget med den tabel eller så er der sket en fejl i MySQL, som har
fået den værdi bumpet op.
Avatar billede hoejgaard Juniormester
25. maj 2008 - 17:18 #13
okay det er jo ikke så godt for hvad så med den efterfølgende post ??
Avatar billede arne_v Ekspert
25. maj 2008 - 18:21 #14
Når du resetter med ALTER TABLE så kan du da indsætte et par milliarder igen !
Avatar billede hoejgaard Juniormester
25. maj 2008 - 19:30 #15
er der en funktion i phpmyadmin til det ?
Avatar billede arne_v Ekspert
25. maj 2008 - 21:16 #16
PHPMyAdmin kan udføre SQL kommandoer og du fik SQL kommandoen 10/04-2008 21:20:47
Avatar billede hoejgaard Juniormester
25. maj 2008 - 22:13 #17
okay fint mange tak !

Læg et svar arne
Avatar billede arne_v Ekspert
25. maj 2008 - 22:20 #18
svar
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