Référence de langage d'administration de la base de données
<<<
Syntaxe de SET Commande SHOW CHARACTER SET
>>>

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 :

SET @var_name = expr;
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 .

<< Syntaxe de SET >>
Référence de langage d'administration de la base de données Syntaxe de SHOW Commande SHOW CHARACTER SET