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 Section 5.2.3.1, « Variables système dynamiques ».
        
          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 Section 9.3, « Variables 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. See Section 4.3.2, « Fichier d'options my.cnf ».
        
          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. See
          Section 13.5.3.18, « 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 Section 5.2.3, « Variables serveur système », 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. See
              Section 13.4.1, « Syntaxes de START TRANSACTION,
        COMMIT et 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.
            
              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. See
              Section 15.7.4, « Contraintes de clés étrangères 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 (see
              Section C.1.7, « Changements de la version 5.0.0 (22 décembre 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. Section 13.5.3.5, « 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. See
              Section 15.7.4, « Contraintes de clés étrangères FOREIGN KEY ».
            
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

