:: DEVELOPER ZONE
SET [OPTION] SQL_VALUE_OPTION= wert, ...
SET OPTION setzt verschiedene Optionen, die die Arbeitsweise des
Servers oder Ihrer Clients beeinflussen. Jede Option, die Sie setzen,
bleibt in Kraft, bis die aktuelle Sitzung beendet wird, oder bis Sie die
Option auf einen anderen Wert setzen.
characterset zeichensatz_name | DEFAULT
Das mappt alle Zeichenketten von und zum Client auf das angegebene Mapping.
Momentan ist die einzige Option für zeichensatz_name
cp1251_koi8, aber Sie können leicht neue Mappings hinzufügen, indem
Sie die sql/convert.cc-Datei in der MySQL-Quelldistribution
editieren. Das vorgabemäßige Mapping kann durch Setzen des
zeichensatz_name-Werts auf DEFAULT wieder hergestellt
werden.
Beachten Sie, dass sich die Syntax für das Setzen der
characterset-Option von der Syntax für das Setzen anderer Optionen
unterscheidet.
PASSWORD = PASSWORD('ein_passwort')
Setzt das Passwort für den aktuellen Benutzer. Jeder nicht anonyme Benutzer kann sein eigenes Passwort ändern!
PASSWORD FOR benutzer = PASSWORD('ein_passwort')
Setzt das Passwort für einen bestimmten Benutzer auf dem aktuellen
Server-Host. Das kann nur ein Benutzer mit Zugriff auf die
mysql-Datenbank tun. Der Benutzer sollte im
user@hostname-Format eingegeben werden, wobei user und
hostname exakt so sind, wie sie in den User- und
Host-Spalten des mysql.user-Tabelleneintrags aufgelistet
sind. Wenn Sie zum Beispiel in den Spalten User und Host die
Einträge 'bob' und '%.loc.gov' haben wollen, schreiben Sie:
mysql> SET PASSWORD FOR bob@"%.loc.gov" = PASSWORD("newpass");
oder
mysql> UPDATE mysql.user SET password=PASSWORD("newpass") where user="bob' und host="%.loc.gov";
SQL_AUTO_IS_NULL = 0 | 1
Falls auf 1 gesetzt (Vorgabe), wird mit folgendem Konstrukt die
letzte eingefügte Zeile einer Tabelle mit einer auto_increment-Zeile
gefunden:
WHERE auto_increment_spalte IS NULL. Das wird von einigen
ODBC-Programme wie Access benutzt.
AUTOCOMMIT= 0 | 1
Falls auf 1 gesetzt, werden alle Änderungen einer Tabelle auf einmal
durchgeführt. Um eine Transaktion aus mehreren Befehlen anzufangen, müssen
Sie das BEGIN-Statement benutzen. See Abschnitt 7.7.1, „BEGIN/COMMIT/ROLLBACK-Syntax“. Falls auf 0
gesetzt, müssen Sie COMMIT / ROLLBACK benutzen, um diese
Transaktion zu akzeptieren / zu widerrufen. See Abschnitt 7.7.1, „BEGIN/COMMIT/ROLLBACK-Syntax“. Beachten Sie,
dass MySQL nach dem Umschalten vom AUTOCOMMIT-Modus zum
AUTOCOMMIT-Modus ein automatisches COMMIT auf alle offenen
Transaktionen durchführt.
Falls auf 1 gesetzt, werden alle temporären Tabellen auf Platte
statt im Arbeitsspeicher gespeichert. Das ist etwas langsamer, aber Sie
erhalten nicht den Fehler The table tabelle is full, wenn Sie große
SELECT-Operationen ausführen, die eine große temporäre Tabelle
erfordern. Der Vorgabewert für eine neue Verbindung ist 0 (das
heißt, temporäre Tabellen im Arbeitsspeicher benutzen).
SQL_BIG_SELECTS = 0 | 1
Falls auf 0 gesetzt, bricht MySQL ab, wenn ein SELECT versucht
wird, das wahrscheinlich sehr lange dauern wird. Das ist nützlich, wenn ein
unratsames WHERE-Statement abgesetzt wurde. Ein große Anfrage ist
definiert als ein SELECT, das wahrscheinlich mehr als
max_join_size Zeilen untersuchen muss. Der Vorgabewert für eine neue
Verbindung ist 1 (was alle SELECT-Statements zuläßt).
SQL_BUFFER_RESULT = 0 | 1
SQL_BUFFER_RESULT erzwingt, dass das Ergebnis von SELECT's in
eine temporäre Tabelle geschrieben wird. Das hilft MySQL, die
Tabellensperren frühzeitig aufzuheben, und ist hilfreich in Fällen, wo es
lange dauert, das Ergebnis an den Client zu senden.
SQL_LOW_PRIORITY_UPDATES = 0 | 1
Falls auf 1 gesetzt, warten alle INSERT-, UPDATE-,
DELETE- und LOCK TABLE WRITE-Statements, bis es kein
anhängiges SELECT oder LOCK TABLE READ für die betroffene
Tabelle gibt.
SQL_MAX_JOIN_SIZE = wert | DEFAULT
Nicht zulassen, dass SELECTs, die wahrscheinlich mehr als
value Zeilenkombinationen untersuchen müssen, ausgeführt werden.
Wenn Sie diesen Wert setzen, können Sie SELECTs abfangen, bei denen
Schlüssel nicht korrekt verwendet werden und die wahrscheinlich sehr lange
dauern. Wenn dieser Wert auf etwas anderes als DEFAULT gesetzt wird,
wird der SQL_BIG_SELECTS-Flag zurückgesetzt. Wenn Sie den
SQL_BIG_SELECTS-Flag wieder setzen, wird die
SQL_MAX_JOIN_SIZE-Variable ignoriert. Sie können für diese Variable
einen Vorgabewert setzen, wenn Sie mysqld mit -O max_join_size=# starten.
SQL_SAFE_UPDATES = 0 | 1
Falls auf 1 gesetzt, bricht MySQL ab, wenn ein UPDATE oder
DELETE versucht wird, das keinen Schlüssel oder kein LIMIT in
der WHERE-Klausel benutzt. Das ermöglicht das Abfangen falscher
Aktualisierungen, wenn SQL-Befehle von Hand eingegeben werden.
SQL_SELECT_LIMIT = wert | DEFAULT
Die maximale Anzahl von Datensätzen, die von SELECT-Statements
zurückgegeben werden. Wenn ein SELECT eine LIMIT-Klausel hat,
hat das LIMIT Vorrang vor dem Wert von SQL_SELECT_LIMIT. Der
Vorgabewert für eine neue Verbindung ist ``unbegrenzt.'' Wenn Sie diese
Begrenzung geändert haben, kann der Vorgabewert wieder hergestellt werden,
indem Sie einen SQL_SELECT_LIMIT-Wert von DEFAULT verwenden.
SQL_LOG_OFF = 0 | 1
Falls auf 1 gesetzt, wird für diesen Client kein Loggen ins
Standard-Log durchgeführt, wenn der Client die
process-Berechtigung hat. Das betrifft nicht die
Update-Log-Datei!
SQL_LOG_UPDATE = 0 | 1
Falls auf 0 gesetzt, wird für diesen Client kein Loggen in die
Update-Log-Datei durchgeführt, wenn der Client die
process-Berechtigung hat. Das betrifft nicht das Standard-Log!
SQL_QUOTE_SHOW_CREATE = 0 | 1
Falls auf 1 gesetzt, setzt SHOW CREATE TABLE Tabellen- und
Spaltennamen in Anführungszeichen. Das ist vorgabemäßig
angeschaltet, damit Replikation von Tabellen mit merkwürdigen
Spaltennamen funktioniert. Abschnitt 5.5.5.8, „SHOW CREATE TABLE“.
TIMESTAMP = zeitstempel_wert | DEFAULT
Setzt die Zeit für diesen Client. Das wird benutzt, um den
Original-Zeitstempel zu erhalten, wenn sie die Update-Log-Datei benutzen,
um Zeilen wiederherzustellen. zeitstempel_wert sollte ein
UNIX-Epoche-Zeitstempel sein, kein MySQL-Zeitstempel.
LAST_INSERT_ID = #
Setzt den Wert, der von LAST_INSERT_ID() zurückgegeben wird. Dieser
wird in der Update-Log-Datei gespeichert, wenn Sie LAST_INSERT_ID()
in einem Befehl benutzen, der eine Tabelle aktualisiert.
INSERT_ID = #
Setzt den Wert, der von einem folgenden INSERT- oder ALTER TABLE-Befehl benutzt wird, wenn ein AUTO_INCREMENT-Wert eingefügt
wird. Das wird hauptsächlich zusammen mit der Update-Log-Datei benutzt.
© 1995-2005 MySQL AB. All rights reserved.
