Kapitel 7: MySQL-Sprachreferenz 373
Eine M¨oglichkeit, dieses Problem zu vermeiden, ist, mysqld mit -O lower_case_
tabelles=1 zu starten. Vorgabem¨aßig ist diese Option 1 unter Windows und 0 unter
Unix.
Wenn lower_case_tabelles 1 ist, wandelt MySQL alle Tabellennamen in Kleinschrei-
bung um, sowohl beim Speichern als auch beim Nachschlagen. Wenn Sie diese Option
¨andern, beachten Sie, dass Sie zuerst Ihre alten Tabellennamen in Kleinschreibung umwan-
deln m¨ussen, bevor Sie mysqld starten.
7.1.4 Benutzer-Variablen
MySQL unterst¨utzt Thread-spezifische Variablen mit der @variablename-Syntax. Eine
Variable kann aus alphanumerischen Zeichen des aktuellen Zeichensatzes sowie aus ‘_’, ‘$’
und ‘.’ bestehen. Der vorgabem¨aßige Zeichensatz ist ISO-8859-1 Latin1; das kann mit
der --default-character-set-Option f¨ur mysqld ge¨andert werden. Siehe Abschnitt 5.6.1
[Character sets], Seite 260.
Variablen m¨ussen nicht initialisiert werden. Sie enthalten vorgabem¨aßig NULL und k¨onnen
Ganzzahl-, Real- oder Zeichenketten-Werte speichern. Alle Variablen f¨ur einen Thread
werden automatisch freigegeben, wenn der Thread beendet wird.
Sie k¨onnen eine Variable mit der SET-Syntax setzen:
SET @variable= { ganzzahl_ausdruck | realzahl_ausdruck | zeichenketten_ausdruck } [,@variable= ...].
Sie k¨onnen eine Variable in einem Ausdruck auch mit der @variable:=expr-Syntax setzen:
select @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
+----------------------+------+------+------+
| @t1:=(@t2:=1)+@t3:=4 | @t1 | @t2 | @t3 |
+----------------------+------+------+------+
| 5 | 5 | 1 | 4 |
+----------------------+------+------+------+
(Wir mussten hier die :=-Syntax benutzen, weil = f¨ur Vergleiche reserviert ist.)
Benutzer-Variablen k¨onnen benutzt werden, wo Ausdr¨ucke erlaubt sind. Beachten Sie, dass
das momentan keine Zusammenh¨ange einschließt, in denen explizit Zahlen erforderlich sind,
wie in der LIMIT-Klausel eines SELECT-Statements oder der IGNORE Anzahl LINES-Klausel
eines LOAD DATA-Statements.
HINWEIS: In einem SELECT-Statement wird jeder Ausdruck erst dann ausgewertet, wenn
er an den Client geschickt wird. Das heißt, dass Sie in der HAVING-, GROUP BY- oder ORDER
BY-Klausel nicht auf einen Ausdruck verweisen k¨onnen, der Variablen beinhaltet, die nicht
im SELECT-Teil gesetzt wurden. Folgendes Statement zum Beispiel funktioniert erwartungs-
gem¨aß NICHT:
SELECT (@aa:=id) AS a, (@aa+3) AS b FROM tabelle HAVING b=5;
Der Grund ist, dass @aa nicht den Wert der aktuellen Zeile enth¨alt, sondern den Wert von
id der vorher akzeptierten Zeile.
7.1.5 Kommentar-Syntax
Der MySQL-Server die Kommentar-Stile # bis Zeilenende, -- bis Zeilenende und /*
mittendrin oder mehrzeilig */:
Comentarios a estos manuales