SET [GLOBAL | SESSION] sql_variable=expression,
    [[GLOBAL | SESSION] sql_variable=expression] ...
        SET configura várias opções que afetam a
        operação do servidor ou seu cliente.
      
Os seguintes exemplos mostram as diferentes sintaxes que se pode usar para configurar variáveis:
        Em versões antigas do MySQL permitiamos o uso da sintaxe
        SET OPTION, mas esta sintaxe agora está
        obsoleta.
      
        No MySQL 4.0.3 adicionamos as opções GLOBAL
        e SESSION e acessamos as variáveis de
        inicialização mais importantes.
      
        LOCAL pode ser usado como sinôniumo de
        SESSION.
      
        Se você define diversas variáveis na mesma linha de comando, o
        último modo GLOBAL | SESSION é utilizado
      
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;
        A sintaxe @@nome_variável é suoprtada para
        tornar a sintaxe do MySQL compatível com outros bancos de
        dados.
      
As diferentes variáveis de sistema que podem ser configuradas estão descritas na seção de variáveis de sistema deste manual. See Secção 6.1.5, “Variáveis de Sistema”.
        Se você estiver usando SESSION (o padrão) a
        opção que você definir terá efeito até que o sessão atual
        finalize ou até que vecê atribua um valor diferente a esta
        opção. Se você estiver usando GLOBAL, que
        exige o privilégio SUPER, a opção é
        lembrada e usada pelas novas conexões até que o servidor
        reinicie. Se você quiser tornar uma opção permanente, você
        deve definí-la em um arquivo de opção. See
        Secção 4.1.2, “Arquivo de Opções my.cnf”.
      
        Para evitar o uso incorreto, o MySQL exibirá um erro se você
        usar SET GLOBAL com uma variável que só
        pode ser usada com SET SESSION ou se você
        não estiver usando SET GLOBAL com uma
        variável global.
      
        Se você quiser definir uma variável SESSION
        com um valor GLOBAL ou um valor
        GLOBAL ao valor padrão do MySQL, você pode
        configurá-lo com DEFAULT.
      
SET max_join_size=DEFAULT;
Isto é idêntico a:
SET @@session.max_join_size=@@global.max_join_size;
        Se você quiser restringir o valor máximo com o qual uma
        variável de servidor pode ser configurado com o comando
        SET, você pode especificaá-lo usando a
        opção de linha de comando
        --maximum-variable-name. See
        Secção 4.1.1, “Opções de Linha de Comando do mysqld”.
      
        Você pode obter uma lista da maioria das variáveis com
        SHOW VARIABLES. See
        Secção 4.6.8.4, “SHOW VARIABLES”. Você pode obter o valor de
        uma variável específica com a sintaxe
        @@[global.|local.]variable_name:
SHOW VARIABLES like "max_join_size"; SHOW GLOBAL VARIABLES like "max_join_size"; SELECT @@max_join_size, @@global.max_join_size;
        Segue aqui a descrição das variáveis que usam uma sintaxe
        SET não padrão e algumas das outras
        variáveis. A definição das outras variáveis podem ser
        encontrados na seção variáveis de sistema, entre as opções
        de inicialização ou na descrição de SHOW
        VARIABLES. See Secção 6.1.5, “Variáveis de Sistema”. See
        Secção 4.1.1, “Opções de Linha de Comando do mysqld”. See
        Secção 4.6.8.4, “SHOW VARIABLES”.
      
            AUTOCOMMIT= 0 | 1
          
            Se configurado com 1 todas alterações
            em uma tabela será feita de uma vez. Para iniciar uma
            transação de vários comandos, deve ser usada a
            instrução BEGIN. See
            Secção 6.7.1, “Sintaxe de START TRANSACTION,
        COMMIT e ROLLBACK”. Se configurado com
            0 deve ser usado
            COMMIT/ROLLBACK para
            aceitar/recusar aquela transação. See
            Secção 6.7.1, “Sintaxe de START TRANSACTION,
        COMMIT e ROLLBACK”. Note que quando você altera do
            modo não-AUTOCOMMIT para
            AUTOCOMMIT, o MySQL irá fazer um
            COMMIT automático em quaisquer
            transações abertas.
          
            Se definido com 1, todas as tabelas
            temporárias são armazenadas no disco em vez de o ser na
            meória. Isto será um pouco mais lento, mas você não
            terá o erro The table tbl_name is full
            para grandes operações SELECT que
            exigem uma tabela temporária maior. O valor padrão para
            uma nova conexão é 0 (isto é, usa
            tabelas temporárias em memória) Esta opção era chamada
            SQL_BIG_TABLES. No MySQL 4.0 você
            normalmente nunca deve precisar deste parâmetro já que o
            MySQL converterá automaticamente tabelas em memória para
            tabelas em disco se isto for necessário.
          
            CHARACTER SET nome_conjunto_caracteres |
            DEFAULT
          
            Mapeia todas as strings do e para o cliente com o mapa
            especificado. Atualmente a única opção para
            character_set_name é
            cp1251_koi8, mas você pode adicionar
            novos mapas editando o arquivo
            sql/convert.cc na distribuição fonte
            do MySQL. O mapeamento padrão pode ser restaurado
            utilizando o valor DEFAULT para
            character_set_name.
          
            Perceba que a sintaxe para configurar a opção
            CHARACTER SET é diferente da sintaxe
            para configurar as outras opções.
          
            DATE_FORMAT = format_str
          
            Determina como o servidor converte valores DATE para
            strings. Esta variável está disponível como uma opção
            global, local ou de linha de comando.
            format_str pode ser especificado
            convenientemente usando a função
            GET_FORMAT(). Veja See
            Secção 6.3.4, “Funções de Data e Hora”.
          
            DATETIME_FORMAT = format_str
          
            Determina como o servidor converte valores DATETIME para
            string. Esta variável está disponível como uma opção
            global, local ou de linha de comando.
            format_str pode ser especificada
            convenientemente usando a função
            GET_FORMAT(). Veja See
            Secção 6.3.4, “Funções de Data e Hora”.
          
            INSERT_ID = #
          
            Configura o valor que será usado pelo comando
            INSERT ou ALTER TABLE
            seguinte ao inserir um valor
            AUTO_INCREMENT. Isto é usado
            principalmente com o log de atualizações.
          
            LAST_INSERT_ID = #
          
            Configura o valor a ser retornado de
            LAST_INSERT_ID(). Ele é armazenado no
            log de atualizações quando você utiliza
            LAST_INSERT_ID() em um comando que
            atualiza uma tabela.
          
            LOW_PRIORITY_UPDATES = 0 | 1
          
            Se configurado com 1, todas instruções
            INSERT, UPDATE,
            DELETE e LOCK TABLE
            WRITE irão esperar até que não existam
            SELECT ou LOCK TABLE
            READ pendentes na tabela afetada. Esta opção era
            chamada SQL_LOW_PRIORITY_UPDATES.
          
            MAX_JOIN_SIZE = value | DEFAULT
          
            Não permite que SELECTs que
            provavelmente necessitem examinar mais que
            valor combinações de registros.
            Configurando este valor, você pode obter
            SELECTs onde chaves não são usadas
            corretamente e que provavelmente gastarão um bom tempo.
            Configurando-o para um valor diferente do
            DEFAULT irá definir o atributo
            SQL_BIG_SELECTS com o padrão. Se você
            configurar o atributo SQL_BIG_SELECTS
            novamente, a variável SQL_MAX_JOIN_SIZE
            será ignorada. Você pode configurar um valor padrão para
            esta variável iniciando o mysqld com
            -O max_join_size=#. Esta opção era
            chamada SQL_MAX_JOIN_SIZE
          
Note que se o resultado da consulta ja estiver na cache de consultas, o verificaição acima não será feita. O MySQL irá enviar o resultado ao cliente. Uma vez que o resultado da consulta já foi consultado e não será responsabilidade do servidor enviar o resultado ao cliente.
            PASSWORD = PASSWORD('alguma senha')
            
          
Configura a senha para o usuário atual. Qualquer usuário que não seja anônimo pode alterar sua própria senha!
            PASSWORD FOR user = PASSWORD('alguma
            senha')
          
            Configura a senha para um usuário específico no servidor
            atual. Somente um usuário com acesso ao banco de dados
            mysql pode fazer isto. O usuário deve
            ser fornecido no formato
            usuário@home_maquina, onde
            usuário e
            nome_máquina são exatamente o que
            estão listados nas colunas User e
            Host da tabela
            mysql.user. Por exemplo, se você possui
            uma entrada com os campos User e
            Host com 'bob' e
            '%.loc.gov', você escreveria:
          
mysql> SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');
Que é equivalente a:
mysql>UPDATE mysql.user SET Password=PASSWORD('newpass')->WHERE User='bob' AND Host='%.loc.gov';mysql>FLUSH PRIVILEGES;
            QUERY_CACHE_TYPE = OFF | ON | DEMAND,
            QUERY_CACHE_TYPE = 0 | 1 | 2
          
Define a configuração da cache de consultas para esta thread. Set query cache setting for this thread.
| Opção | Descrição | 
| 0 ou OFF | Não armazena ou recupera resultados. | 
| 1 ou ON | Armazena todos os resultados, exceto consultas SELECT
                    SQL_NO_CACHE .... | 
| 2 ou DEMAND | Armazena apenas consultas SELECT SQL_CACHE .... | 
            SQL_AUTO_IS_NULL = 0 | 1
          
            Se configurado com 1 (padrão) o último
            registro inserido em uma tabela com um regitro
            auto_incremnto pode ser encontrado com a seguinte
            construção: WHERE auto_increment_column IS
            NULL. Isto é usado por alguns programas ODBC como
            o Access.
          
            SQL_BIG_SELECTS = 0 | 1
          
            Se configurado com 0, o MySQL aborta as
            instruções SELECTs que provavelmente
            levam muito tempo (isto é, instruções para as quais o
            otimizador estima que o número de registros examinados
            provavelmente irá exceder o valor de
            MAX_JOIN_SIZE. Isto é útil quando uma
            instrução WHERE não aconselhada for
            utilizado. O valor padrão para uma nova conexão é
            1 (que permitirá qualquer instrução
            SELECT).
          
            Se você definir MAX_JOIN_SIZE com um
            valor diferente de DEFAULT,
            SQL_BIG_SELECTS será definida com
            0.
          
            SQL_BUFFER_RESULT = 0 | 1
          
            SQL_BUFFER_RESULT força para que o
            resultado das SELECT's seja colocado em
            tabelas temporárias. Isto irá ajudar o MySQL a liberar
            mais cedos bloqueios de tabela e ajudarão em casos onde
            elas ocupam muito tempo para enviar o conjunto de resultados
            para o cliente.
          
            SQL_SAFE_UPDATES = 0 | 1
          
            Se configurado com 1, o MySQL irá aborar
            se tentarmos fazer um UPDATE ou
            DELETE sem utilizar uma chave ou
            LIMIT na cláusula
            WHERE. Desta forma é possível capturar
            atualizações erradas ao criarmos comandos SQL manualmente.
          
            SQL_SELECT_LIMIT = valor | DEFAULT
          
            O número máximo de registros para retornar de instruções
            SELECT. Se uma SELECT
            tem uma cláusula LIMIT, o
            LIMIT tem precedêencia sobre o valor de
            SQL_SELECT_LIMIT. O valor padrão para
            uma nova conexão é ``unlimited'' (ilimitado). Se você
            alterou o limite, o valor padrão pode ser restaurado
            atribuindo o valor DEFAULT a
            SQL_SELECT_LIMIT.
          
            SQL_LOG_OFF = 0 | 1
          
            Se configurado com 1, nenhum registro
            será feito no log padrão para este cliente, se o cliente
            tiver o privilégio SUPER.
          
            SQL_LOG_BIN = 0 | 1
          
            Se configurada com 0, nenhum registro é
            feito no log binário para o cliente, se o cliente tiver o
            privilégio SUPER.
          
            SQL_LOG_UPDATE = 0 | 1
          
            Se configurado com 0, nenhum registro
            será feito no log de atualizações para o cliente, se o
            cliente tiver o privilégio SUPPER. Esta
            variável está obsoleta a partir da versão 5.0.
          
            SQL_QUOTE_SHOW_CREATE = 0 | 1
          
            Se configurado com 1, SHOW
            CREATE TABLE irá colocar os nomes de tabela e
            colunas entre aspas. Está
            ligado por padrão, para
            que replicação de tabelas com nomes de colunas estranhos
            funcione. Secção 4.6.8.8, “SHOW CREATE TABLE”.
          
            TIMESTAMP = valor_timestamp | DEFAULT
          
            Configura a hora/data para este cliente. É usado para obter
            a hora e data original se você utiliza o log de
            atualizações para restaurar registros.
            valor_timestamp deve ser um timestamp
            UNIX Epoch, não um timestamp MySQL.
          
            TIME_FORMAT = format_str
          
            Determina como o servidor converte valores
            TIME para string. Esta variável está
            disponível como uma opção global, local ou de linha de
            comando. format_str pode ser especificada
            convenientemente usando a função
            GET_FORMAT(). Veja See
            Secção 6.3.4, “Funções de Data e Hora”.
          
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.

