sql >> Databasteknik >  >> RDS >> Mysql

Hur man åtgärdar felaktigt strängvärde i MySQL

Ibland kan du få felet "Incorrect String Value" när du försöker infoga data i MySQL-tabellen eller importera extern data till MySQL-databasen. I den här artikeln kommer vi att titta på hur man fixar felaktiga strängvärden i MySQL.


Hur man åtgärdar felaktigt strängvärde i MySQL

Detta är ett vanligt fel när du försöker infoga värde i en MySQL-tabell som inte har en UTF8-kodning eller teckenuppsättning.


1. Kontrollera standardteckenuppsättningen

Logga in på MySQL och kör följande kommando för att kontrollera standardteckenuppsättningsnamnet för din databas. Ersätt databasnamn med ditt databasnamn.

mysql> SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "database_name";

Om din databas inte har UTF8-kodning måste du ändra den till UTF8. Innan dess måste vi ta en säkerhetskopia av vår databas.


2. Säkerhetskopiera MySQL-databas

Logga ut från MySQL och kör följande kommando för att säkerhetskopiera din MySQL-databas. Ersätt användarnamn , lösenord och databasnamn med ditt användarnamn, lösenord och databasnamn respektive.

$ sudo mysql -u user_name -p pass_word database_name > backup.sql


3. Ändra teckenuppsättning tabeller

Kör följande kommando för att ändra teckenuppsättningen för alla tabeller i din databas till UTF8. Ersätt databasnamn med ditt databasnamn

$ sudo mysql --database=database_name -B -N -e "SHOW TABLES" | awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; SET foreign_key_checks = 1; "}' | mysql --database=database_name

MySQL låter dig ändra teckenuppsättning för endast en tabell åt gången. Det kan vara tråkigt att köra separata kommandon för att ändra teckenuppsättningen för varje tabell. Kommandot ovan listar alla tabeller i en databas och konverterar deras teckenuppsättning till UTF8 en efter en, automatiskt.


4. Ändra databasteckenuppsättning

Logga in på MySQL och kör följande kommando för att ändra teckenuppsättningen i databasen till UTF8. Ersätt databasnamn med databasnamn.

mysql> ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;

Om du nu ska infoga data i MySQL-databasen bör det inte ge fel. Ubiq gör det enkelt att visualisera data och övervaka dem i realtidsinstrumentpaneler. Prova Ubiq gratis.

  1. Komma igång med Oracle SQL Developer på MacOSX

  2. Dold funktion:Dra och släpp åtkomstobjekt mellan filer

  3. Så här åtgärdar du ett fel för överskriden låsväntetid i MySQL

  4. Ta reda på om en CHECK-begränsning är kolumnnivå eller tabellnivå i SQL Server (T-SQL-exempel)