MySql Administrator Parte 12

 

Dando continuidade ao artigo anterior SQL Mode, que faz parte da aba Advanced do menu Startup variables, vou descrever cada opção do SQL Mode:

 

ALLOW_INVALID_DATES – A grosso modo podemos dizer que esta opção faz com que o MySql permita a inserção de datas inválidas, mas não é bem assim, esta opção faz com que o MySql verifique apenas o dia e o  mês data, ou seja, se o dia está entre 1 e 31 e se o mês está entre 1 e 12. Este modo é aplicado apenas às colunas dos tipos date e datetime não se aplica à coluna do tipo timestamp.

 

ANSI_QUOTES -  Esta opção faz com que o MySql passe a tratar aspas dupla (“) como o caracter “`” (acento agudo). Isso faz com que as aspas duplas não seja consideradas para delimitar literais ou strings.

 

ERROR_FOR_DIVISION_BY_ZERO - Com esta opção o MySql retorna um erro (quando em modo restrito) ou um aviso quando houver u8ma divisão por zero ou quando o uso da função MOD tiver o segundo parâmetro como zero durante um INSERT ou um UPDATE, caso esta opção não esteja habilitada, o MySql retorna NULL.

 

HIGH_NOT_PRECEDENCE -  Esta opção foi colocada por questão de compatibilidade com versões anteriores e que dizer que o operador NOT tem ou não precedência, ou seja quando tenho a expressão NOT a BETWEEN b AND c o MySql interpreta a expressão assim: NOT (a BETWEEN b AND c). Em algumas versões anteriores o MySql interpreta a expressão assim: (NOT a) BETWEEN b AND c. Então sem esta opção ativada quando faço um “SELECT NOT 1 BETWEEN -5 AND 5;” o resultado é 0, quando ativo esta opção o resultado é 1.

 

IGNORE_SPACE – Esta opção faz com que o MySql permita um espaço entre a função e o parêntese da função. Quando executo o comando “ SELECT count (*) from <<tabela>> “ sem esta opção o MySql retorna um erro, com esta opção ativada o MySql retorna o resultado.

 

NO_AUTO_CREATE_USER – Esta opção faz com que o comando GRANT não crie um usuário automaticamente, a menos que seja especificada uma senha junto ao comando.

 

NO_AUTO_VALUE_ON_ZERO – O NO_AUTO_VALUE_ON_ZERO afeta o tratamento de colunas AUTO_INCREMENT. Normalmente, você gera a próxima seqüência do número da coluna inserindo 0 ou NULL. NO_AUTO_VALUE_ON_ZERO desabilita esse comportamento fazendo com que apenas NULL gere a próxima seqüência. Este modo pode ser útil se 0 foi armazenado em uma coluna AUTO_INCREMENT da tabela. (Esta não é uma prática recomendada.). Por exemplo, se você faz um dump da tabela com mysqldump e então restaura este dump, o MySQL normalmente gera nova seqüência de números quando encontra os valores 0, resultando em uma tabela com um conteúdo diferente do que foi realizado com o dump. A ativação do NO_AUTO_VALUE_ON_ZERO antes de recarregar o arquivo dump soluciona este problema. O mysqldump inclui automaticamente na sua saída um mapa que permite NO_AUTO_VALUE_ON_ZERO, para evitar esse problema

 

NO_BACKSLASH_ESCAPES – Esta opção desabilita o caracter “\” (barra) como caracter de escape, passando este a ser um caracter comum.

 

NO_DIR_IN_CREATE – Com esta opção habilitada o MySql ignora as diretivas INDEX DIRECTORY e DATA DIRECTORY. Esta opção é usada para replicação de servidores.

 

NO_ENGINE_SUBSTITUTION – Esta opção quando controla automaticamente o mecanismo de armazenamento padrão (MyIsam ou InnoDb)quando criamos uma tabela ou alteramos uma tabela.

 

NO_FIELD_OPTIONS -  Esta opção faz com que o MySql não mostre opções específicas de colunas na apresentação da estrutura da tabela através do comando SHOW CREATE TABLE.

 

NO_KEY_OPTIONS - Esta opção faz com que o MySql não mostre opções específicas de índices na apresentação da estrutura da tabela através do comando SHOW CREATE TABLE.

 

NO_TABLE_OPTIONS - Esta opção faz com que o MySql não mostre opções específicas da tabela na apresentação de sua estrutura através do comando SHOW CREATE TABLE.

 

NO_UNSIGNED_SUBTRACTION - Esta opção faz com que em uma operação de subtração entre inteiros o resultado não fique sem sinal (+-) mesmo que um dos operadores seja definido como  sem sinal (UNSIGNED). Em outras palavras, o resultado da operação é sempre com sinal (SIGNED).

 

NO_ZERO_DATE – Esta opção faz com que o MySql não aceite datas com zeros '0000-00-00'  quando configurado com modo restrito. Você poderá inserir datas com zeros com a opção IGNORE. No modo não restrito você poderá inserir datas com zeros mas será gerada uma advertência.

 

ONLY_FULL_GROUP_BY – Esta opção faz com que o MySql não permita consultas (SELECT) com a cláusula GROUP BY  sem que todas as colunas estejam especificadas nesta cláusula. Exceto as colunas com funções de agregação.

 

PIPES_AS_CONCAT - Esta opção faz com que o MySql aceite os sinais || (pipes) para concatenar strings como a função CONCAT().

 

REAL_AS_FLOAT - Esta opção faz com que o MySql “trate” o tipo Real como Float, por padrão o MySql “trata” o tipo Real como Double.