MySQL MOSTRAR AVISOS

Resumo : neste tutorial você aprenderá como usar o MySQL SHOW WARNINGSpara exibir informações sobre erros, avisos e notas.

Introdução à instrução SHOW WARNINGS do MySQL

Ao executar uma instrução e encontrar um erro ou aviso, você poderá usar a SHOW WARNINGSinstrução para exibir informações detalhadas.

Aqui está a sintaxe básica da SHOW WARNINGSinstrução:

SHOW WARNINGS;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Por exemplo, a instrução a seguir tenta eliminar a tabela abcque não existe:

DROP TABLE IF EXISTS abc;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O MySQL retorna uma mensagem indicando que encontrou um aviso:

Query OK, 0 rows affected, 1 warning (0.01 sec)Linguagem de código:  CSS  ( css )

Para exibir o aviso, você usa a SHOW WARNINGSinstrução:

SHOW WARNINGS;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-------+------+-----------------------------------+
| Level | Code | Message                           |
+-------+------+-----------------------------------+
| Note  | 1051 | Unknown table 'classicmodels.abc' |
+-------+------+-----------------------------------+
1 row in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

A saída tem três colunas:

  • Level: Pode ser uma nota ou erro.
  • Code: Este é um número inteiro que representa um código de erro do MySQL.
  • Message: armazena o aviso detalhado ou a mensagem de erro.

Neste exemplo, o aviso foi que a tabela abcnão existe no classicmodels banco de dados de exemplo .

Se quiser limitar o número de condições (erros, avisos e notas), você pode usar a LIMITcláusula:

SHOW WARNINGS [LIMIT [offset,] row_count]Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A LIMITcláusula carrega o mesmo significado que a SELECTdeclaração.

Para mostrar o número total de erros e avisos, você usa a COUNT(*)função com o da SHOW WARNINGSinstrução assim:

SHOW COUNT(*) WARNINGS;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Alternativamente, você também pode obter o mesmo resultado da @@warning_countvariável do sistema:

SELECT @@warning_count;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Exemplo de instrução MySQL SHOW WARNINGS

A instrução a seguir usa a DATE_SUB()função para adicionar/subtrair intervalos de datas:

SELECT 
    DATE_SUB('2017-02-29', INTERVAL - 1 DAY) d1,
    DATE_SUB('2017-12-32', INTERVAL + 2 DAY) d2,
    DATE_SUB('2017-15-03', INTERVAL + 5 DAY) d3;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+------+------+------+
| d1   | d2   | d3   |
+------+------+------+
| NULL | NULL | NULL |
+------+------+------+
1 row in set, 3 warnings (0.00 sec)Linguagem de código:  PHP  ( php )

A seguinte SHOW WARNINGSdeclaração para mostrar todos os três avisos:

SHOW WARNINGS;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2017-02-29' |
| Warning | 1292 | Incorrect datetime value: '2017-12-32' |
| Warning | 1292 | Incorrect datetime value: '2017-15-03' |
+---------+------+----------------------------------------+
3 rows in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

Este exemplo usa a SHOW WARNINGS LIMITinstrução para exibir os dois primeiros avisos:

SHOW WARNINGS LIMIT 2;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2017-02-29' |
| Warning | 1292 | Incorrect datetime value: '2017-12-32' |
+---------+------+----------------------------------------+
2 rows in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

A instrução a seguir usa the SHOW COUNT(*) WARNINGSpara mostrar o número total de avisos:

SHOW COUNT(*) WARNINGS;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-------------------------+
| @@session.warning_count |
+-------------------------+
|                       3 |
+-------------------------+
1 row in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

Variável de sistema MySQL max_error_count

MySQL usa a max_error_countvariável de sistema para controlar o número máximo de avisos, erros e notas que o servidor pode armazenar.

Para visualizar o valor da max_error_countvariável do sistema, você usa a SHOW VARIABLESinstrução:

SHOW VARIABLES LIKE 'max_error_count';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_error_count | 1024  |
+-----------------+-------+
1 row in set (0.02 sec)Linguagem de código:  JavaScript  ( javascript )

Para alterar o valor da max_error_countvariável, você usa a SETinstrução. Por exemplo, esta instrução define max_error_countcomo 2048:

SET max_error_count=2048;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Definir o valor da max_error_countvariável como zero desabilitará o armazenamento de mensagens. Porém, o warning_countainda mostra a quantidade de erros e avisos ocorridos, mas o servidor não armazena essas mensagens.

Resumo

  • Use SHOW WARNINGSa instrução MySQL para exibir erros e avisos da execução mais recente de uma instrução.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *