MySQL databasen är en allmänt använd öppen källkod databas , särskilt när det gäller webbutveckling . Den integrerar med ett brett utbud av skriptspråk , vilket gör det användbart för programmerare både erfarna och nya. Databasservrar , dock är komplicerade djur , och MySQL är inget undantag . Sortering ut sina misstag och fastställande av bästa praxis kräver en del studier och erfarenhet . Betydelse
budskap för felkod 1062 i MySQL är " Duplicera post [ inresa värde ] för tangenten [ namn på nyckeln ] . " Detta innebär att du försökte infoga data som duplicerar befintliga data för en unik nyckel . Till exempel , om du har en tabell med användarkonton och " username " är en unik nyckel på denna tabell , och en post med användarnamnet " exampleguy " redan finns i tabellen , om du försöker att infoga en ny rad med användarnamnet " exampleguy , " du får ett felmeddelande med kod 1062
Möjliga orsaker
första orsaken att leta efter är en legitim uppgifter insättning kollision , . t.ex. du eller din programvara inte kontrollera om din data är en dubblett innan du försöker sätta in den . En annan möjlig orsak är att din tabell struktur inte är korrekt utformad . Om du märker att du ofta måste infoga dubbletter men dessa poster är definierade i tabellen struktur som en unik nyckel , då bordet design har ett problem . Gör att nyckeln inte är unik .
Sätt att undvika
Innan du sätter in data i en databas , " sanity check" det . När en tabell har en unik nyckel , se till att nyckeln inte dupliceras innan du sätter . Dessutom använder unika nycklar endast vid behov . I en tabell över webbplatsens användare , till exempel , bör inte två konton har samma användarnamn , så gör " username " kolumnen en unik nyckel och även kontrollera att nya användares önskade användarnamn inte vidtas innan du sätter in sina nya kontouppgifter till databas. Gör inte det " förnamn " kolumnen unikt , men eftersom detta kommer att resultera i datakollisioner .
Överväganden
p Det kan vara frestande att helt enkelt ta bort alla unika index för att undvika arbetet med att förhindra 1062 fel . Men unika nycklar påskynda betydligt upp dataåtkomst . Dessutom, för vissa dataelement det gör helt enkelt meningsfullt att genomdriva unikhet , såsom fallet med användarnamn kolumn i en användartabell . Omvänt , unika nycklar är långsammare att skriva eftersom indexet filen måste uppdateras , och bör endast användas i de fall där du kan givetvis räkna med en nyckel för att vara unik .