Avatar billede pfp Nybegynder
05. september 2004 - 16:46 Der er 11 kommentarer og
1 løsning

Duplicate Entry ved indsættelse i mySQL

Hej,

Jeg har en funktion som fungeret fint over længere tid. Når jeg forsøger at indsætte data i min mySQL tabel nu får jeg flg. fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-4.0.12-nt]Duplicate entry '255' for key 1

Hvad pokker betyder det? Er det en indstilling i databasen der skal pilles ved eller hvad?


/pfp
Avatar billede arne_v Ekspert
05. september 2004 - 17:03 #1
Tja - den siger at du forsøger at indsætte en række med værdien 255 i en kolonne
selvom der allerede er en række med den værdi i den kolonne.

Og feltet er enten primær nøgle eller har et unikt index.

Det kan man ikke.
Avatar billede pfp Nybegynder
05. september 2004 - 17:44 #2
Tabellen er har et felt "PageID", som er primær nøgle, unikt samt med auto increment. Jeg kan ikke forstå at den så ikke bare laver en record med ID 256, den har jo selv kunnet finde ud af at incrementere op til 255..
Avatar billede arne_v Ekspert
05. september 2004 - 18:40 #3
Med autoincrement skal du huske ikke at indsætte en værdi i det felt !
Avatar billede pfp Nybegynder
05. september 2004 - 20:57 #4
Det gør jeg heller ikke. Min kode har jo også oprettet de første 255 records uden problemer. Det er det der undrer mig. Når jeg forsøger at lave mig record nr. 256 går det galt fordi den siger "duplicate entry", men det forstår jeg bare ikke hvorfor den siger når det er autoincrement.

Det under mig i øvrigt også at det lige er tallet 255...
Avatar billede arne_v Ekspert
05. september 2004 - 21:05 #5
Hvad er data typen på feltet ?
Avatar billede pfp Nybegynder
05. september 2004 - 21:07 #6
tinyint, kan ske jeg skal prøve med int
Avatar billede arne_v Ekspert
05. september 2004 - 21:07 #7
Hvis du har valgt UNSIGNED TINYINT så ...
Avatar billede arne_v Ekspert
05. september 2004 - 21:07 #8
TINYINT er -128..127

UNSIGNED TINYINT er 0..255
Avatar billede pfp Nybegynder
05. september 2004 - 21:08 #9
Jeg har lige skiftet til INT og dermed forsvandt mine problemer :)
Avatar billede arne_v Ekspert
05. september 2004 - 21:08 #10
Så ja - du skal vælge en anden data type.

SMALLINT eller INT

(og hvorfor ikke vælge INT så løber du ikke ind i det problem igen førend
du har indsat nogle milliareder records)
Avatar billede pfp Nybegynder
05. september 2004 - 21:10 #11
Jep det har jeg også gjort. En lidt pinlig fejl, jeg kom godt selv til at tænke på det da jeg faldt over tallet 255 :)

Smider du et svar
Avatar billede arne_v Ekspert
05. september 2004 - 21:11 #12
jep
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
Kurser inden for grundlæggende programmering

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