MySQL

The used table type doesn't support FULLTEXT indexes

1. November 2008 · Programmierung · andreas · Kein Kommentar

Fulltext indexes werden bei MySQL nur für MyISAM-Tabellen unterstützt. Soll also ein Fulltext index angelegt werden, so ist zuerst der Typ der betroffenen Tabelle zu ändern, was am einfachsten mittels

ALTER TABLE my_table ENGINE = MYISAM;

geht.


Seltsame Umlaute in phpMyAdmin-Exporten

26. Oktober 2008 · Anwendungen · andreas · Kein Kommentar

Wenn beim Import eines phpMyAdmin-Exports statt der eigentlich erwarteten Umlaute nur seltsame Zeichen angezeigt werden, hilft es, vor dem Import am Anfang der “.sql”-Datei ein

SET NAMES 'utf8';

einzufügen.


Incorrect integer value bei Autoincrement-Feldern

12. Oktober 2008 · Programmierung · andreas · Kein Kommentar

Meldet MySQL nach einem Update auf Version 5 plötzlich jede Menge “Incorrect integer value"s in den Autoincrement-Feldern, dann versucht ein Programm mit an Sicherheit grenzender Wahrscheinlichkeit gerade, eben diese Felder mit leeren Strings zu füttern.

Bis einschließlich Version 4 wurde hier der String stillschweigend durch den jeweiligen Autoincrement-Wert ersetzt, ein Verhalten, das mit Version 5 durch das standardmäßige Einschalten des “STRICT”-Modus geändert wurde.

Wer “quick and dirty” gerne wieder seine Ruhe hätte, kann einfach ein

set sql_mode = '';

absetzen. Wer stattdessen lieber auf Fehlersuche gehen will, dem sei der ‘TRADITIONAL’-Mode empfohlen, der im obigen Fall dann Fehler statt Warnungen ausspuckt.

Nächere Infos zu den verschiedenen SQL-Modi gibt es in der MySQL Dokumentation.


Excel-Daten in MySQL-Datenbank übernehmen

5. September 2008 · Anwendungen · andreas · Kein Kommentar

Steht man vor einer Aufgabe wie z.B. die Daten einer Excel-Tabelle in eine MySQL-Datenbank zu übernehmen, so geht entweder die Suche nach einem passenden Utility oder das Schreiben eines kleinen Skripts los.

Doch halt - eigentlich ist an Werkzeug schon alles, da, was man braucht:

  1. Excel: Zuerst werden mit Excel alle Daten soweit vorbereitet, wie sie später dann auch in der Tabelle stehen sollen. Dann wird die Excel-Tabelle als CSV-Datei abgespeichert.
  2. MySQL: Die Tabelle selbst wird angelegt und mit den benötigten Feldern versehen. Anschließend wird mittels des ‘LOAD DATA’-Kommandos die vorher erzeugte CSV-Datei in die Tabelle eingelesen.

Beispielhaft könnte der Aufruf des Kommandos wie folgt aussehen:

mysql> LOAD DATA INFILE 'D:/Temp/excel-daten.csv' INTO TABLE zieltabelle FIELDS TERMINATED BY ';';

Eine Ausführliche Beschreibung der Parameter gibt’s im MySQL Reference Manual