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...
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
10. april 2008 - 21:20
#1
Proev: ALTER TABLE tabelnavn AUTO_INCREMENT = storvaerdi
10. april 2008 - 21:29
#2
okay det virkede.. Men hvordan kan det være den begynder at indsætte '2147483647' ??
10. april 2008 - 21:37
#3
Det ved jeg ikke. Det er stoerst mulige 32 bit signed integer.
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>
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
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...
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.
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 ??
16. april 2008 - 18:17
#9
Du kan godt have vaerdier 1..35 i tabellen men at auto increment pointeren staar til 2147483647 !
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)
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 ??
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.
okay det er jo ikke så godt for hvad så med den efterfølgende post ??
Når du resetter med ALTER TABLE så kan du da indsætte et par milliarder igen !
er der en funktion i phpmyadmin til det ?
PHPMyAdmin kan udføre SQL kommandoer og du fik SQL kommandoen 10/04-2008 21:20:47
okay fint mange tak ! Læg et svar arne
Computerworld tilbyder specialiserede kurser i database-management