Jetzt Mitglied werden
Kostenlos registrieren und die vielen Vorteile der Webmasterpro-Mitgliedschaft nutzen.
Forum - Entwicklung
- Markup (HTML, XML, etc.) und CSS
- Skriptsprachen (PHP, Javascript, etc.)
- Datenbanken (SQL)
- CMS und Frameworks
- Flash und ActionScript
Info: Der Stern signalisiert, dass neue Beiträge vorhanden sind.
Alle Foren - Übersicht
Portal aktuelle Themen
Design aktuelle Themen
Server aktuelle Themen
- Webhosting und Webspace
- Betriebssysteme (Windows, Linux, etc.)
- Serveradministration
- Überwachung, Sicherheit und Backups
Management aktuelle Themen
Ü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.
MySQL: Standard-Collation für Tabellen setzen
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
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
