2009-06-11 9 views

Antwort

10

Soweit ich weiß, kann man nicht ALTER TABLE Befehle auf dem laufen kann Tabellen in information_schema. Stattdessen sollten Sie sich die character_set_* Variablen ansehen. Sie können sehen, welche Variablen auf, die mit einem show variables Befehl in Ihrem MySQL-Server-Werte:

show variables like "character_set_%"; 

Die Variable, die mit Meta-Daten in MySQL, wie die information_schema Tabellen zu tun hat, ist die character_set_system Variable. Ich denke, die my.cnf ist der richtige Ort, um es einzustellen.

Auf dieser Seite finden Sie weitere Informationen: UTF-8 for Metadata.

Für gewöhnliche Tabellen, ändern Sie den Zeichensatz einer Tabelle mit einem ALTER TABLE Befehl:

alter table some_table convert to character set utf8; 

Um dies zu tun, können Sie das „alten“ Privileg müssen.

Sie können sehen, welche Berechtigungen Ihr MySQL Server mit einem show privileges Befehl unterstützt, und Sie können sehen, welche Berechtigungen Ihrem aktuellen Benutzer mit einem show grants Befehl erteilt werden.

19

Um den Zeichensatz und Sortierung für alle Spalten in einer vorhandenen Tabelle, Verwendung zu ändern:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]; 
+0

was priviledges tun müssen, um i-Systemdatenbank –

+0

eine Idee zu verändern @MySQLDBA Sie die „alter“ Privileg müssen, –

+1

Christian Antwort sehen Achten Sie darauf, diese Warnung zu prüfen, bevor ein 'ALTER' Befehl Ausführen> Wenn Sie ALTER verwenden TABELLE, um eine Spalte von einem Zeichensatz in einen anderen zu konvertieren, > MySQL versucht, die Datenwerte zuzuordnen, aber wenn die Zeichensätze nicht kompatibel sind, kann ein Datenverlust vorliegen. [MySQL-Referenzhandbuch] (http://dev.mysql.com/doc/refman/5.0/en/charset-column.html) –

2
alter table some_table convert to character set utf8; 

genial das funktionierte so gut, wie ich für mich sagen kann, jetzt kann ich Chinesisch in diesen Tabellen verwenden !! und ich kann alle utf8_encode() utf8_decode() auf meiner Website entfernen!