Resumo : neste tutorial você aprenderá como usar o MySQL SHOW WARNINGS
para 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 WARNINGS
instrução para exibir informações detalhadas.
Aqui está a sintaxe básica da SHOW WARNINGS
instrução:
SHOW WARNINGS;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Por exemplo, a instrução a seguir tenta eliminar a tabela abc
que 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 WARNINGS
instruçã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 abc
nã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 LIMIT
cláusula:
SHOW WARNINGS [LIMIT [offset,] row_count]
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A LIMIT
cláusula carrega o mesmo significado que a SELECT
declaração.
Para mostrar o número total de erros e avisos, você usa a COUNT(*)
função com o da SHOW WARNINGS
instruçã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_count
variá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 WARNINGS
declaraçã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 LIMIT
instruçã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(*) WARNINGS
para 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_count
variá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_count
variável do sistema, você usa a SHOW VARIABLES
instruçã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_count
variável, você usa a SET
instrução. Por exemplo, esta instrução define max_error_count
como 2048
:
SET max_error_count=2048;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Definir o valor da max_error_count
variável como zero desabilitará o armazenamento de mensagens. Porém, o warning_count
ainda mostra a quantidade de erros e avisos ocorridos, mas o servidor não armazena essas mensagens.
Resumo
- Use
SHOW WARNINGS
a instrução MySQL para exibir erros e avisos da execução mais recente de uma instrução.