Herr_Dude Skrevet 8. desember 2002 Del Skrevet 8. desember 2002 Hei, Jeg har en database som jeg oppdaterer fra nettet. Etter jeg prøvde meg på en funksjon for sletting av valgfri data i denne oppstod det en del problemer. Etter sletting fikk jeg problemer med å oppdatere databasen med nye data. Grunnen til dette oppdaget jeg da jeg gjorde det "manuelt" fra dos: Fikk følgende feilmelding: ERROR 1062: Duplicate entry '127' for key 1 Autoincrement fungerer altså ikke når jeg setter inn verdier med tom '' - verdi i nøkkelfeltet. Dette gikk fint før. Nå må jeg selv skrive inn en verdi i id feltet. (Nå 128 -> neste feilmelding = Duplicate entry '128' ...) Noen som har hatt dette problemet og funnet en løsning på det? Edit: Er en MySql database som oppdateres med PHP kode... Glemte å skrive det... Pinlig :-/ [ Denne Melding var redigert av: Herr_Dude på 2002-12-08 23:53 ] Lenke til kommentar
kilogram Skrevet 9. desember 2002 Del Skrevet 9. desember 2002 Det som er interessant, er typen på id-feltet? På meg virkar det som det er av typen tinyint, og difor ikkje kan halde meir enn 128 postar, etter det eg huskar. Prøv å kjøre "ALTER TABLE users CHANGE COLUMN id id INT UNIQUE PRIMARY KEY auto_increment", og sjå om ting endrar seg. :smile: Tillegg; kva query bruker du for å sette inn data? _________________ Vegard A. Larsen, [email protected], www.sourcecode.no [ endret av kilogram den 2002-12-09 11:29 ] Lenke til kommentar
Scalpel Skrevet 9. desember 2002 Del Skrevet 9. desember 2002 Jeg kjenner igjen feilmeldingen din. Det er nok, som kilogram sier, at du bruker tinyint. Tinyint går bare fra 0 - 127. Sett den til int istede. Lenke til kommentar
Herr_Dude Skrevet 9. desember 2002 Forfatter Del Skrevet 9. desember 2002 Takk skal dere ha! At dette var problemet slo meg aldri, da problemet oppstod like etter jeg hadde slettet en post fra databasen...Den fortsetter jo også bare å telle oppover istedet for å "fylle inn" så... Var litt fastlåst i min tankegang :smile: . Endret nå id med kommandoen: "ALTER TABLE table modify id INTEGER NOT NULL;" og nå ser det ut til å fungere :smile: . Takk igjen Lenke til kommentar
alexholm Skrevet 9. desember 2002 Del Skrevet 9. desember 2002 Hmm si meg, er det mulig i mysql å få den til å bruke siste ubrukte key? At man har i dette tilfellet tiny int unsigned som Id og som er primary key. Hvis man sletter en record så hadde det jo vært flott om key counteren ikke økte, men at den ble siste ledige Id. Eller må man kanskje holde styr på det selv i PHP og la være å bruke auto_increment? Lenke til kommentar
kilogram Skrevet 9. desember 2002 Del Skrevet 9. desember 2002 Quote: alexholm skrev (2002-12-09 16:28):Hmm si meg, er det mulig i mysql å få den til å bruke siste ubrukte key? At man har i dette tilfellet tiny int unsigned som Id og som er primary key. Hvis man sletter en record så hadde det jo vært flott om key counteren ikke økte, men at den ble siste ledige Id. Eller må man kanskje holde styr på det selv i PHP og la være å bruke auto_increment? Nei, du kan ikkje sette mySQL til å gjere dette, såvidt eg veit. Kvifor vil du det? Om du t.d. refererer nyhetsartiklar etter id-nummeret, og sletter ein artikkel, så er det greit at ein veit at her var det ein gong ein artikkel. Det er ikkje alltid det er hensiktsmessig å slette ein artikkel heller, det kan vere gonger ein berre sett eit felt i tabellen, som seier "ikkje vis denne". Vidare, så er det mogleg, men vanskeleg å gjere det i PHP. Ein kan ikkje hente ut det lågaste id-nummeret som ikkje er i bruk utan mykje rekning. Måten mySQL gjer denne indekseringa på er eigentleg ganske velgjennomtenkt, og om du nyttar INT som type på alle id-felt, så har du nok å utvide med i lang tid framover. :smile: Lenke til kommentar
alexholm Skrevet 9. desember 2002 Del Skrevet 9. desember 2002 Quote: Den 2002-12-09 17:16, skrev kilogram:Nei, du kan ikkje sette mySQL til å gjere dette, såvidt eg veit. Kvifor vil du det? Var ikke spesiell grunn til det, var bare at jeg kom til å tenke på at access/m$ sql'en har støtte for dette. (Hvis jeg ikke husker feil) Quote: og om du nyttar INT som type på alle id-felt, så har du nok å utvide med i lang tid framover. Jo, det er vel sikkert greiest sånn 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å