MySQL database server er et almindeligt anvendt open-source database , især inden for webudvikling . Det integrerer med en bred vifte af scripting -sprog , hvilket gør det nyttigt for programmører både erfarne og nye . Databaseservere , er imidlertid komplicerede dyr , og MySQL er ingen undtagelse . Sortering sine fejl og bestemme bedste praksis kræver nogle undersøgelse og erfaring. Betydning
budskab til fejlkode 1062 i MySQL er "Dupliker post [ post value] for nøgle [ navnet på tasten ] . " Det betyder, at du har forsøgt at indsætte data, dubletter eksisterende data til en unik nøgle. For eksempel, hvis du har en tabel med brugerkonti og " brugernavn" en unik nøgle på denne tabel, og en post med brugernavnet " exampleguy " findes allerede i tabellen , hvis du forsøger at indsætte en ny række med brugernavnet " exampleguy , "du får en fejl med kode 1062
Mulige årsager
første årsag til at kigge efter, er en legitim data indsættelse kollision . du f.eks eller softwaren ikke kontrollere , om dine data er en dublet , før du prøver at indsætte det. En anden mulig årsag er, at din tabelstruktur ikke er korrekt udformet. Hvis du opdager, at du ofte nødt til at indsætte dubletter , men disse elementer er defineret i tabellen struktur som en unik nøgle , så bordet design har et problem. Gør denne nøgle ikke enestående.
Måder at undgå
Før indsætte data i en database, " sanity check" det. Når en tabel har en unik nøgle, skal du sørge for nøglen er ikke duplikeres , inden du sætter . Også bruge unikke nøgler kun givet fald . I en tabel over webstedets brugere , for eksempel, bør der ikke to konti har samme brugernavn, så få det " brugernavn" kolonnen en unik nøgle , og også kontrollere, at nye brugeres ønskede brugernavne ikke tages , før du isætter deres nye kontodata i databasen . Må ikke gøre "fornavn " kolonnen unikt, men da dette vil resultere i datakollisioner .
Overvejelser
Det kan være fristende blot at fjerne alle unikke indekser for at undgå det arbejde involveret i forebyggelse af 1062 fejl . Men unikke nøgler betydelig grad at fremskynde hentning af data. Derudover, for nogle dataelementer det simpelthen fornuftigt at håndhæve entydighed , såsom tilfældet med brugernavnet kolonnen i en brugers tabel . Omvendt unikke nøgler er langsommere til at skrive, fordi indekset filen skal opdateres , og bør kun anvendes i tilfælde, hvor du kan naturligvis forvente en nøgle til at være unik.