Temporäre Tabellen vom MySQL

SET max_error_count=0;
DROP TEMPORARY TABLE IF EXISTS tmpfilter;
CREATE TEMPORARY TABLE tmpfilter (gid INT);
INSERT INTO tmpfilter (SELECT cot_cof_gid FROM task WHERE cot_betreff LIKE '+++ DEMO +++ %');
DELETE FROM files WHERE cof_gid IN (SELECT gid FROM tmpfilter);
OPTIMIZE TABLE files;

mysql vertical

Die Ausgabe von vielen Spalten lässt sich optimieren, wenn die Abfrage mit \G statt mit ; am Ende ausgelöst wird. Dauerhaft kann diese Einstellung pro Benutzer vorgenommen werden, wenn im HOME eine Datei .my.cnf mit folgendem Inhalt erstellt wird.

[mysql]
vertical

Diese Einstellung in /etc/my.cnf ändert das Verhalten global. Ist die Option aktiviert, erzeugt auch ein ; die vertikale Ausgabe.

deutsche Collation für MySQL

Ein Auszug vom Artikel „MySQL-Collation latin1_german1_ci oder latin1_german2_ci?“:

Collations bestimmen die Sortierreihenfolgen eines SQL-Servers, beispielsweise in ORDER BY-Abfragen. Wenn eine SQL-Abfrage Textfelder auf- oder absteigend sortieren soll, ist es wichtig zu wissen, wie beispielsweise deutsche Umlaute behandelt werden sollen. Dies wird durch die verwendete Collation festgelegt.

Für den deutschen Sprachraum sind zwei Collations in MySQL vorhanden: „latin1_german1_ci“ und „latin1_german2_ci“. Diese basieren auf DIN-1 und DIN-2-Normen (Deutsches Institut für Normung) und werden gerne im Sprachgebrauch mit „Wörterbuchsortierung“ (DIN-1) und „Telefonbuchsortierung“ (DIN-2) bezeichnet.

Vereinfacht kann gesagt werden, dass die „Wörterbuchsortierung“ („latin1_german1_ci“) einen Deutschen Umlaute wie beispielsweise das „Ä“ als „A“, das „Ö“ als „O“, das „Ü“ als „U“ und das „ß“ als „s“ bei der Sortierung behandelt. Die „Telefonbuchsortierung“ („latin1_german2_ci“) setzt das „Ä“ als „AE“, das „Ö“ als „OE“ und das „Ü“ als „UE“ für die Sortierung um. Weitere Informationen über die Collation und deren Unterschiede können imMySQL-Referenzhandbuch nachgelesen werden.

MySQL Optionen

Die Startoptionen der MySQL-Programme lassen sich in Optionsdateien festlegen. Folgendes Beispiel bewirkt, das alle Klientprogramme (Gruppe „client“) das Kennwort „geheim“ und das Charset „utf8“ verwenden. Die Datei ~/.my.cnf muss mit chmod 600 .my.cnf die passenden Zugriffsrechte erhalten.
[code lang=“bash“]# ein Kommentar
[client]
password=“geheim“
default-character-set=utf8[/code]

Eigene Funktionen im MySQL

Screenshot MySQL

Die Aufgabe: eine oft benötigte Funktion innerhalb des MySQL ablegen. Eine Struktur (mit unbekannter Tiefe) wurde in einer Tabelle (jeweils ID oben und unten) abgelegt. Die Funktion soll eine beliebige ID in den dazu passenden Pfad umwandeln können.

Die Lösung: eine eigene Funktion im MySQL. Sie sucht – ausgehend von der aktuellen ID – die Parent-ID, löst diese in ihren Bezeichner auf und beendet sich, wenn die aktuelle ID gleich 0 ist.

„Eigene Funktionen im MySQL“ weiterlesen