14.5.3 Syntaxe de SHOW
14.5 Référence de langage d'administration de la base de données
14 Syntaxe des commandes SQL
Manuel de Référence MySQL 4.1 : Version Française
->Syntaxe de SET . Commande SHOW CHARACTER SET . Syntaxe de SHOW COLLATION . Syntaxe de SHOW COLUMNS . Syntaxe de SHOW CREATE DATABASE . Syntaxe de SHOW CREATE TABLE . Obtenir des informations sur les bases, tables, colonnes et index . Syntaxe SHOW ENGINES . Syntaxe de SHOW ERRORS . SHOW GRANTS . Syntaxe de SHOW INDEX . Syntaxe de SHOW INNODB STATUS . Syntaxe de SHOW LOGS . SHOW PRIVILEGES . Syntaxe de SHOW PROCESSLIST . Syntaxe de SHOW STATUS . SHOW TABLE STATUS . Syntaxe de SHOW TABLES . Syntaxe de SHOW VARIABLES . SHOW WARNINGS | ERRORS
|
14.5.3.1 Syntaxe de SET
SET variable_assignment [, variable_assignment] ... variable_assignment: user_var_name = expr | [GLOBAL | SESSION] system_var_name = expr | @@[global. | session.]system_var_name = expr
|
SET
permet de configurer plusieurs options qui affectent le comportement
de votre serveur ou de votre client.
En MySQL 4.0.3, nous avons ajouté les options
GLOBAL
et
SESSION
et permis la modification des variables systèmes les plus importantes dynamiquement,
durant l'exécution du serveur. Le système de variables que vous pouvez
utiliser est décrit dans Variables dynamiques système .
Dans les anciennes versions de MySQL, nous avions autorisé l'utilisation de
la syntaxe
SET OPTION
, mais elle est maintenant abandonnée.
Omettez simplement le mot
OPTION
.
Les exemples suivants montrent les différentes syntaxes
qu'on peut utiliser pour configurer des variables.
Une variable utilisateur s'écrit sous la forme
@var_name
et peut être
configurée comme ceci :
Plus d'informations sur les variables utilisateurs sont données dans Variables définies par l'utilisateur .Les variables système peuvent être identifiées dans une commande
SET
sous la forme
var_name
. Le nom peut être optionnellement précédé par
GLOBAL
ou
@@global.
pour indiquer que cette variable est globale,
ou par
SESSION
,
@@session.
, ou
@@
pour
indiquer que cette variable est une variable de session.
LOCAL
et
@@local.
son synonymes de
SESSION
et
@@session.
. Si aucune option n'est
présente,
SET
spécifie une variable de session.
La syntaxe
@@var_name
pour les variables système est supportée pour
rendre la syntaxe MySQL compatible avec les autres bases.
Si vous configurez plusieurs variables sur une seule ligne de commande, le dernier
mode
GLOBAL | SESSION
utilisé est pris en compte.
SET sort_buffer_size=10000; SET @@local.sort_buffer_size=10000; SET GLOBAL sort_buffer_size=1000000, SESSION sort_buffer_size=1000000; SET @@sort_buffer_size=1000000; SET @@global.sort_buffer_size=1000000, @@local.sort_buffer_size=1000000;
|
Si vous utilisez
SESSION
(par défaut) l'option que vous configurez garde
son effet jusqu'à ce que la session courante se termine, ou que vous modifiez à
nouveau cette option. Si vous utilisez
GLOBAL
, qui requière le privilège
SUPER
, l'option est gardée en mémoire et utilisée pour les nouvelles
connexion jusqu'au redémarrage du serveur. Si vous voulez qu'un changement reste
permanent, vous devez l'effectuer dans l'un des fichiers d'options de MySQL.
Utiliser les fichiers d'options .Pour éviter un mauvais usage, MySQL donnera une erreur si vous utilisez
SET
GLOBAL
avec une variable qui ne peut être inutilisée que par
SET SESSION
ou
si vous n'utilisez pas
SET GLOBAL
avec une variable globale.
Si vous voulez configurer une variable
SESSION
à une valeur
GLOBAL
ou
une valeur
GLOBAL
à la valeur par défaut de MySQL, vous pouvez la configurer
à
DEFAULT
.
SET max_join_size=DEFAULT; SET @@session.max_join_size=@@global.max_join_size;
|
Vous pouvez obtenir une liste de la plupart des variables avec
SHOW VARIABLES
.
Syntaxe de
SHOW VARIABLES
.
Vous pouvez obtenir la valeur d'une variable spécifique avec
la syntaxe
@@[global.|local.]nom_variable
:
SHOW VARIABLES LIKE 'max_join_size'; SHOW GLOBAL VARIABLES LIKE 'max_join_size';
|
Vous pouvez aussi obtenir une valeur spécifique d'une variable
en utilisant la syntaxe
@@[global.|local.]var_name
avec
SELECT
:
SELECT @@max_join_size, @@global.max_join_size;
|
Lorsque vous lisez la valeur d'une variable avec la syntaxe
SELECT @@var_name
(c'est à dire, sans spécifier
global.
,
session.
ou
local.
), MySQL retourne la
valeur de
SESSION
si elle existe, et la valeur
GLOBAL
sinon.
Vous trouverez ici une description des variables qui utilisent une syntaxe non-standard
de
SET
. Les définitions des autres variables peuvent être trouvées
dans la section des Variables sytème du serveur , avec les options de démarrage ou dans la
description de
SHOW VARIABLES
.
Même si ces variables ne sont pas affichées par
SHOW VARIABLES
,
vous pouvez obtenir leur valeur avec la commande
SELECT
(à
l'exception de
CHARACTER SET
). Par exemple :
mysql> SELECT @@AUTOCOMMIT; +--------------+ | @@autocommit | +--------------+ | 1 | +--------------+
|
-
AUTOCOMMIT= {0 | 1}
-
Si définie à
1
tous les changements dans une table se feront
en une seule fois. Pour démarrer une transaction multi-commandes, vous devez
utiliser la commande
BEGIN
. Syntaxe des
BEGIN/COMMIT/ROLLBACK
.
Si définie à
0
vous devez utiliser
COMMIT
/
ROLLBACK
pour accepter/annuler cette transaction.
Notez que quand vous passez du mode non
AUTOCOMMIT
vers le mode
AUTOCOMMIT
, MySQL fera un
COMMIT
automatique sur toutes les transactions
en cours.
-
BIG_TABLES = {0 | 1}
-
Si définie à
1
, toutes les tables temporaires sont stockées
sur le disque plutôt qu'en mémoire. Cela sera un peu plus lent, mais vous
n'obtiendrez jamais l'erreur
The table nom_de_table is full
pour les grands
SELECT
qui requièrent une table temporaire.
La valeur par défaut pour une nouvelle connexion est
0
(qui est d'utiliser
la mémoire pour les tables temporaires).
Cette option se nommait avant
SQL_BIG_TABLES
.
-
CHARACTER SET {charset_name | DEFAULT}
-
Cela change le jeu de caractère dans toutes les chaînes du et vers le client avec le jeu donné.
Jusqu'à maintenant, la seule option pour
nom_jeu_de_caractères
est
cp1251_koi8
, mais vous pouvez facilement ajouter d'autres possibilités en éditant le
fichier
sql/convert.cc
dans la distribution des sources MySQL. Le jeu de caractères
par défaut peut être restauré en utilisant la valeur
DEFAULT
de
nom_jeu_de_caractères
DEFAULT
.
Notez que la syntaxe pour configurer l'option
CHARACTER SET
diffère
de la syntaxe pour configurer les autres options.
-
FOREIGN_KEY_CHECKS = {0 | 1}
-
Si cette option vaut
1
(par défaut), les contraintes de clé étrangères
des tables
InnoDB
sont vérifiées. Si cette option vaut
0
,
elles sont ignorées. Désactiver les clés étrangères peut être pratique
pour recharger des tables
InnoDB
dans un ordre différent que celui
qu'impose les relations de contraintes. Cette variable a été ajoutée
en MySQL 3.23.52.
Contraintes
FOREIGN KEY
.
-
IDENTITY = valeur
-
Cette variable est un synonyme de la variable
LAST_INSERT_ID
.
Elle existe pour des raisons de compatibilité avec les autres bases.
Depuis MySQL 3.23.25, vous pouvez lire sa valeur avec
SELECT @@IDENTITY
.
Depuis MySQL 4.0.3, vous pouvez aussi modifier cette valeur avec
SET IDENTITY
.
-
INSERT_ID = valeur
-
Configure la valeur à utiliser par l'appel suivant à la commande
INSERT
ou
ALTER TABLE
lors de l'insertion d'une valeur
AUTO_INCREMENT
.
Cela est souvent utilisé par le log des modifications.
-
LAST_INSERT_ID = valeur
-
Configure la valeur qui doit être retournée par
LAST_INSERT_ID()
. C'est
enregistré dans le log de mises à jour quand vous utilisez
LAST_INSERT_ID()
dans une commande qui met à jour une table.
-
NAMES {'charset_name' | DEFAULT}
-
SET NAMES
spécifie les valeurs des trois variables systèmes de session
character_set_client
,
character_set_connection
et
character_set_results
avec le jeu de caractères donné.La valeur par défaut de ces variables peut être rappelée avec
DEFAULT
.
Notez que la syntaxe de
SET NAMES
diffère en cela
des autres options. Cette commande est disponible depuis
MySQL 4.1.0.
-
SQL_AUTO_IS_NULL = {0 | 1}
-
Si définie à
1
(par défaut) alors on peut trouver la
dernière ligne insérée dans une table avec une colonne
AUTO_INCREMENT
avec la construction suivante :
WHERE auto_increment_column IS NULL
|
Ceci est utilisé par des programmes ODBC tel que Access.
SQL_AUTO_IS_NULL
a été ajouté en MySQL 3.23.52.
-
SQL_BIG_SELECTS = {0 | 1}
-
Si configuré à
0
, MySQL interrompra les requêtes
SELECT
qui prendront probablement trop de temps. C'est utile lorsqu'une clause
WHERE
déconseillée a été utilisée. Une grosse requête
est définie comme étant un
SELECT
qui devra probablement étudier
plus de
max_join_size
lignes. La valeur par défaut d'une nouvelle connexion
est
1
(qui permet toutes les requêtes
SELECT
).
-
SQL_BUFFER_RESULT = {0 | 1}
-
SQL_BUFFER_RESULT
forcera les résultats des requêtes
SELECT
à être placés dans une table temporaire. Cela aidera MySQL à
libérer les verrous sur table plus tôt et améliorera les cas où
le jeu de résultats de la requête prend trop de temps à être
envoyée au client.
-
SQL_LOG_BIN = {0 | 1}
-
Si cette option vaut
0
, aucun log n'est fait dans le log binaire
du client, si le client a les droits de
SUPER
.
-
SQL_LOG_OFF = {0 | 1}
-
Si cette option vaut
1
, aucun log n'est fait dans le log standard
du client, si le client a les droits de
SUPER
.
-
SQL_LOG_UPDATE = {0 | 1}
-
Si définie à
0
, aucune trace des requêtes ne sera gardée
dans le log des mises à jour pour le client, si le client à le privilège
SUPER
.
Cette variable est abandonnée depuis la version 5.0.0 et est remplacée
par
SQL_LOG_BIN
( Changements de la version5.0.0 (22 Dec 2003: Alpha) ).
-
SQL_QUOTE_SHOW_CREATE = {0 | 1}
-
Si vous le configurez à
1
,
SHOW CREATE TABLE
protégera les
noms de tables et de colonnes. Ceci est activé par défaut,
pour que la réplication des tables avec des noms à risques fonctionne.
Syntaxe de
SHOW CREATE TABLE
.
-
SQL_SAFE_UPDATES = {0 | 1}
-
Si définit à
1
, MySQL annulera si un
UPDATE
ou un
DELETE
est exécuté alors qu'il n'utilise pas de clef ou de
LIMIT
dans la clause
WHERE
. Cela permet de bloquer les requêtes erronées crées à
la main.
-
SQL_SELECT_LIMIT = valeur | DEFAULT
-
Le nombre maximal des enregistrements que doivent retourner les requêtes
SELECT
.
Si un
SELECT
possède une clause
LIMIT
, celle-ci est utilisée. La
valeur par défaut pour une nouvelle connexion est ``illimitée.'' Si vous avez
changé la limite, la valeur par défaut peut être retrouvée en
utilisant la valeur
DEFAULT
avec
SQL_SELECT_LIMIT
.
-
SQL_WARNINGS = {0 | 1}
-
Cette variable contrôle le fait que les insertion mono-ligne
INSERT
produisent une chaîne d'information si une alerte survient. La valeur par
défaut est 0. Donnez la valeur de 1 pour avoir un message d'information.
Cette variable a été ajoutée en MySQL 3.22.11.
-
TIMESTAMP = valeur_timestamp | DEFAULT
-
Configure le temps pour ce client. C'est utilisé pour obtenir le timestamp d'origine
si vous utilisez le log de mises à jour pour restaurer des lignes.
valeur_timestamp
doit être un timestamp Unix, et non un timestamp MySQL.
-
UNIQUE_CHECKS = {0 | 1}
-
Si cette option vaut
1
(par défaut), les tests d'unicité sur les
index secondaires des tables
InnoDB
sont effectués. Si l'option vaut
0
,
aucun test d'unicité n'est fait. Cette variable a été ajouté en MySQL 3.23.52.
Contraintes
FOREIGN KEY
.
|