Webhjelp Skrevet 29. juli 2010 Del Skrevet 29. juli 2010 Heisann, jeg skulle nå prøve å laste opp en kode til min mysqldatabase, dette er til mitt mafiaspill. Kan noen forklare meg hva som er feil med mysqlkoden? Feil SQL-spørring: INSERT INTO `admin_log` VALUES ( 2199, 2, 'Edited File - announcements.html', 'Apr 29, 2007 - 8:41:31 am', '' ) ; MySQL sa: #1062 - Duplicate entry '2199' for key 'PRIMARY' Si i fra visst dere skal ha den koden jeg skulle legge inn i databasen. 1 Lenke til kommentar
nomore Skrevet 29. juli 2010 Del Skrevet 29. juli 2010 Problemet er at du har et felt i databasen som er satt til å være primary, og da kan du ikke ha to rader med samme verdi i det feltet. Her sier jo feilmeldingen at den ikke kan legge til raden pga at det er en lik rad i tabellen allerede med verdi 2199. Lenke til kommentar
Gjest Skrevet 29. juli 2010 Del Skrevet 29. juli 2010 Fordi verdien 2199 finnes allerede i databasen og derfor får du ikke satt inn samme verdi to ganger fordi der du setter den inn kan ikke verdien eksistere to-ganger fordi feltet er en primary-key. Lenke til kommentar
Webhjelp Skrevet 29. juli 2010 Forfatter Del Skrevet 29. juli 2010 Hmm, skal sjekke over filen. Lenke til kommentar
nomore Skrevet 29. juli 2010 Del Skrevet 29. juli 2010 Du må sjekke spørringen eller tabellstrukturen din, ikke filen. Mer informasjon finner du på de første treffene på Google eller i dokumentasjonen til MySQL. Lenke til kommentar
Thomas. Skrevet 29. juli 2010 Del Skrevet 29. juli 2010 Heisann, jeg skulle nå prøve å laste opp en kode til min mysqldatabase, dette er til mitt mafiaspill. Kan noen forklare meg hva som er feil med mysqlkoden? Feil SQL-spørring: INSERT INTO `admin_log` VALUES ( 2199, 2, 'Edited File - announcements.html', 'Apr 29, 2007 - 8:41:31 am', '' ) ; MySQL sa: #1062 - Duplicate entry '2199' for key 'PRIMARY' Si i fra visst dere skal ha den koden jeg skulle legge inn i databasen. Prøv også å reparere og defragmenter tabellen via phpmyadmin. Lenke til kommentar
Warz Skrevet 31. juli 2010 Del Skrevet 31. juli 2010 Ellers vil alltids denne funke (genererer nytt nr) INSERT INTO `admin_log` (SKRIV INN NAVN PÅ TABELL KOLONNENE HER MED KOMMA MELLOM HVER OG UTEN DEN FØRSTE (id eller hva det er)) VALUES ( 2, 'Edited File - announcements.html', 'Apr 29, 2007 - 8:41:31 am', '' ) ; Lenke til kommentar
Flin Skrevet 31. juli 2010 Del Skrevet 31. juli 2010 Skal du gjøre om på en en entry? Lenke til kommentar
quantum Skrevet 1. august 2010 Del Skrevet 1. august 2010 Prøv også å reparere og defragmenter tabellen via phpmyadmin. Hvis dét hjelper på duplicate key er det noe seriøst galt med MySQL ... Lenke til kommentar
Crowly Skrevet 3. august 2010 Del Skrevet 3. august 2010 Du kan også se på muligheten til å benytte ON DUPLICATE KEY UPDATE: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html Ett greit eksempel fra kommentarene om hvordan utforme sql'en Posted by Shane McEwan on October 27 2006 4:09am [Delete] [Edit] Here is an example of how to update multiple columns using values supplied in the INSERT statement. This assumes that column 'a' is the unique key. INSERT INTO table (a,b,c,d,e) VALUES (1,2,3,4,5) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES©, d=VALUES(d), e=VALUES(e); This also works for multiple rows: INSERT INTO table (a,b,c,d,e) VALUES (1,2,3,4,5), (6,7,8,9,10) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES©, d=VALUES(d), e=VALUES(e); If you have a lot of columns it would be nice if you could use the following syntax: INSERT INTO table (a,b,c,d,e) VALUES (1,2,3,4,5) ON DUPLICATE KEY UPDATE VALUES(b,c,d,e); and it would match the columns you want to update with the values in the INSERT. Unfortunately, this does not work. You MUST explicitly provide each column assignment. Lenke til kommentar
Thomas. Skrevet 4. august 2010 Del Skrevet 4. august 2010 Prøv også å reparere og defragmenter tabellen via phpmyadmin. Hvis dét hjelper på duplicate key er det noe seriøst galt med MySQL ... Nei, fikk samme feil som deg etter en MySQL-server kræsj. Reparerte tabellen, og feilen ble borte. Lenke til kommentar
Gjest Skrevet 4. august 2010 Del Skrevet 4. august 2010 Prøv også å reparere og defragmenter tabellen via phpmyadmin. Hvis dét hjelper på duplicate key er det noe seriøst galt med MySQL ... Nei, fikk samme feil som deg etter en MySQL-server kræsj. Reparerte tabellen, og feilen ble borte. Du hadde MySQL-server kræsj Thomas, mens trådstarter prøver å sette inn en ID som allerede eksisterer. Lenke til kommentar
quantum Skrevet 5. august 2010 Del Skrevet 5. august 2010 Nei, fikk samme feil som deg etter en MySQL-server kræsj. Reparerte tabellen, og feilen ble borte. Hvis du mener det ikke er en seriøs feil at databasen blir inkonsistent så er det greit for meg, bare jeg slipper å mene det samme selv ;-) (Forøvrig ikke meg som har fått denne feilen.) Lenke til kommentar
quantum Skrevet 5. august 2010 Del Skrevet 5. august 2010 Du hadde MySQL-server kræsj Thomas, mens trådstarter prøver å sette inn en ID som allerede eksisterer. Jepp, og det ser endatil ut som det er et tre år gammelt log-entry fra et annet system. Ville vurdert å enten tømme logtabellen helt, kanskje problemet er at det ligger rader med angitt pk der fra før av. Evt kanskje enda bedre - ikke legge inn eldgamle log-entries fra andre systemer, dvs. slette linjene "insert into admin_log ..." fra SQL-fila som kjøres? Lenke til kommentar
kaffenils Skrevet 5. august 2010 Del Skrevet 5. august 2010 Av ren nysgjerrighet så lurer jeg på om det er MyISAM eller InnoDB du bruker. Regner vel med at det er MyISAM siden et serverkrasj medfører korrupte data. MyISAM er jo ikke akkurat kjent for ACID. Av ren "ondskap" så håper jeg det er InnoDB du bruker slik at det nok en gang er bevist at MySQL er et ubrukelig leketøy. Selv om feilmeldingen forsvant så bør du være bekymret for hva annet som har forsvunnet under reparasjonen. Du ør vurdere å bytte til f.eks. InnoDB (hvis det er MyISAM som benyttes nå), eller aller helst til et annet RDBMS (men det er nok for mye arbeid). Hvis dataene har verdi for deg så spiller du russisk rulett ved å fortsette med samme databasemotor. Lenke til kommentar
Thomas. Skrevet 6. august 2010 Del Skrevet 6. august 2010 Prøv også å reparere og defragmenter tabellen via phpmyadmin. Hvis dét hjelper på duplicate key er det noe seriøst galt med MySQL ... Nei, fikk samme feil som deg etter en MySQL-server kræsj. Reparerte tabellen, og feilen ble borte. Du hadde MySQL-server kræsj Thomas, mens trådstarter prøver å sette inn en ID som allerede eksisterer. Ja..? Hadde kræsj pga feil innstillinger iforhold til trafikk. Mange sender spørring til samme tabell, dataen blir satt inn men servern kræsjer, og auto increment rekker ikke oppdatere seg. Som fører til at den prøver sette inn IDen som ble satt inn før kræsjen. Derfor det hjalp og reparere tabellen. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå