MySQL: Standard Kollation für Tables per SET festlegen
Mastershrimp
- datenbank
0 Roro
Heyho!
ich baue gerade einen Installer für mein System (PHP). Dieser führt eine SQL-Datei aus, um meine benötigten Tabellen in der Datenbank anzulegen. Die SQL-Datei generiere ich aus Eclipse heraus (mit dem "Clay"-Plugin).
Leider kann ich die Kollation einer Tabelle mit Clay nicht festlegen. Ich kann allerdings beliebigen Code an den Anfang der generierten SQL-Datei einfügen.
Also habe ich folgendes dort eingefügt, damit die Tabellen in der richtigen Kollation angelegt werden:
SET storage_engine=INNODB;
SET collation_server=utf8_unicode_ci;
SET collation_database=utf8_unicode_ci;
SET character_set_server=utf8;
SET character_set_database=utf8;
Die generierte SQL-Datei beginnt also mit obenstehendem Block. Danach kommen die ganzen CREATE-Befehle.
Leider werden die Tabellen nicht in der gewünschten Kollation angelegt, sondern in latin1_swedish_ci. Lustigerweise werden sie wohl aber mit InnoDB angelegt - also das scheint er zu kapieren.
Warum klappt das mit der Kollation nicht?
Viele Grüße
Mastershrimp
Also habe ich folgendes dort eingefügt, damit die Tabellen in der richtigen Kollation angelegt werden:
SET character_set_database=utf8;
Leider werden die Tabellen nicht in der gewünschten Kollation angelegt, sondern in latin1_swedish_ci.
Benutze den character-set-Parameter bei create database bzw. create table.
Ja, das ist ja das Problem. Das ist leider nicht möglich.
Ich möchte den Benutzer nicht zwingen eine extra DB für mein System anzulegen, weshalb ich keine Datenbank erstellen möchte.
Und die CREATE-Befehle der Tabellen sind autogeneriert und das Programm erlaubt keine Festlegung der Kollation.
Es muss schon über SET gehen.
Viele Grüße
Mastershrimp