Jetzt Mitglied werden

Kostenlos registrieren und die vielen Vorteile der Webmasterpro-Mitgliedschaft nutzen.

Login für Mitglieder

Forum - Entwicklung

Info: Der Stern signalisiert, dass neue Beiträge vorhanden sind.

Über Webmasterpro.de

Das Portal wird betrieben und entwickelt durch die Team23 Agentur. Die Augsbuger Agentur hat sich auf Community Software und die Entwicklung von Webportalen spezialisiert.

Datenbanken (SQL) - Forum

Derzeit sind Sie als Gast in unserem Forum aktiv. Für das Schreiben registrieren Sie sich bitte. Unser Forum ist eine Austauschplattform für Webworker zum Kommunizieren, Helfen, Informieren und Hilfe finden. Auf der rechten Seiten finden Sie eine Forenübersicht über alle Bereiche des Webmaster-Forums. Unterhalb finden Sie alle aktuellen Themen.


Max B
Beiträge: 220

PN schreiben
Profil ansehen
User ist offline

MySQL: Standard-Collation für Tabellen setzen

Link zur Antwort auf "MySQL: Standard-Collation für Tabellen setzen" von Max B Max B, am Freitag den 26.03.2010 um 22:37:48

Hi,

ich baue gerade ein Install-Script. Dieses führt eine SQL-Datei aus um meine benötigten Tabellen anzulegen. Die Tabellen sollen als Zeichensatz/Collation "utf8_unicode_ci" haben.

Am Anfang meiner SQL-Datei habe ich deshalb

 
sql
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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;

CREATE TABLE accounts (
       accountID INT NOT NULL AUTO_INCREMENT
     , email VARCHAR(200) NOT NULL
     , passwd VARCHAR(32) NOT NULL
     , autologinID INT NOT NULL
     , firstname VARCHAR(50)
     , lastname VARCHAR(100) NOT NULL
     , gender VARCHAR(1)
     , settings TEXT
     , permaLink VARCHAR(255)
     , loginCount INT
     , regTime DATETIME
     , lastLoginTime DATETIME
     , lastActionTime DATETIME
     , status INT(1) NOT NULL
     , PRIMARY KEY (accountID)
);

CREATE TABLE ...

notiert.

Ich erwarte vom Benutzer, dass er bereits eine (leere) Datenbank angelegt hat. Die meisten haben keine Ahnung von Collations weshalb ich vom schlimmsten Fall ausgehe, nämlich dass eine falsche oder gar keine Default-Collation bei der Erstellung der DB angegeben wurde.

Wenn ich die SQL-Datei nun ausführe um meine Tabellen zu erstellen, zeigt phpMyAdmin in der Spalte "Kollation" dummerweise "latin1_swedish_ci" an. Irgendwie ignoriert der die SETs also...Was mache ich falsch?

Die CREATE-Befehle selber haben kein COLLATION - kann ich auch nicht so einfach da reinkriegen weil die von nem Programm autogeneriert werden. Meine einzige Möglichkeit ist, dass ich am Anfang SETs hinzufüge.

Warum ignoriert MySQL diese?

Lustigerweise nimmt er INNODB nämlich sehr wohl. An den SETs generell kann's also nicht liegen...

Hat jemand ne Idee?

Viele Grüße