De MySQL database server is een veelgebruikte open source -database , met name op het gebied van webontwikkeling . Het integreert met een breed scala van scripting talen , waardoor het nuttig voor programmeurs zowel ervaren als nieuwe . Databaseservers zijn echter ingewikkeld beesten , en MySQL is geen uitzondering . Het uitzoeken van haar fouten en bepalen van de beste praktijken vereist enige studie en ervaring . Betekenis De boodschap voor foutcode 1062 in MySQL is " Duplicate binnenkomst [ binnenkomst waarde ] voor de belangrijkste [ naam van de toets ] . " Dit betekent dat u probeerde te voegen gegevens die duplicaten van bestaande gegevens voor een unieke sleutel . Bijvoorbeeld , als u een tabel van gebruikersaccounts en "username " is een unieke sleutel op deze tafel , en een vermelding met de gebruikersnaam " exampleguy " al bestaat in de tabel , als je probeert om een nieuwe rij in te voegen met de gebruikersnaam " exampleguy , ' zul je een foutmelding met code 1062 krijgen Mogelijke redenen De eerste oorzaak te zoeken naar een legitieme data inbrengen botsing ; . je bijvoorbeeld of uw software niet controleren of uw gegevens is een duplicaat voordat je probeert om deze te plaatsen . Een andere mogelijke oorzaak is dat uw tafel structuur is niet goed ontworpen . Als u vindt dat u vaak de behoefte om dubbele items te voegen , maar deze items zijn gedefinieerd in de tabel structuur als een unieke sleutel , dan is de tafel ontwerp heeft een probleem . Zorg dat de sleutel niet uniek . Manieren om te voorkomen Voordat u de gegevens in een database , ' sanity check ' het. Wanneer een tabel heeft een unieke sleutel , zorg ervoor dat de sleutel wordt niet gedupliceerd voordat u . Gebruik ook unieke sleutels alleen waar nodig . In een tabel van de gebruikers van de website , bijvoorbeeld , geen twee accounts moeten dezelfde gebruikersnaam hebt , dus maak er het "username " kolom een unieke sleutel en ook controleren dat de gewenste gebruikersnamen nieuwe gebruikers ' niet voordat u de nieuwe account gegevens in de genomen database. Heeft de "voornaam" kolom uniek maken, echter , omdat dit zal resulteren in data botsingen . Overwegingen Het kan verleidelijk zijn om gewoon verwijder alle unieke indices aan het werk betrokken zijn bij het voorkomen van 1062 te voorkomen. Echter , unieke sleutels aanzienlijk versnellen het ophalen van gegevens . Bovendien, voor sommige data items het maakt gewoon zin om uniciteit , zoals het geval van de kolom gebruikersnaam in een gebruiker tabel af te dwingen . Omgekeerd , unieke sleutels zijn langzamer te schrijven omdat de index -bestand moet worden bijgewerkt , en mag alleen worden gebruikt in gevallen waar u natuurlijk kunt verwachten van een sleutel om uniek te zijn .
|