SHOW WARNINGS | ERRORS
Este comando é implementado no MariaDB 4.1.0.
Ele mostra os erros,a visos e notas recebidos para o último comando. Os erros/avisos são reiniciados para cada comando que utiliza uma tabela.
O servidor MariaDB envia de volta o número total de avisos e erros que você recebe para o último comando; Isto pode ser retornado chamando mysql_warning_count()
.
Até as mensagens max_error_count
são armazenadas (variáveis global e específicas da thread).
Você pode recuperar o número de erros de @error_count
e avisos de @warning_count
.
SHOW WARNINGS
mostra todos os erros, avisos e notas que você recebeu para o último comando enquanto SHOW ERRORS
lhe mostra apenas o erro.
mysql>DROP TABLE IF EXISTS no_such_table;
mysql>SHOW WARNINGS;
+-------+------+-------------------------------+ | Level | Code | Message | +-------+------+-------------------------------+ | Note | 1051 | Unknown table 'no_such_table' | +-------+------+-------------------------------+
Note que no MariaDB 4.1.0 apenas adicionamos a estrutura para avisos e poucos comandos MariaDB ainda geraram avisos. A versão 4.1.1 suporta todos os tipos de avisos para LOAD DATA INFILE
e instruções DML tais como os comandos INSERT
, UPDATE
e ALTER
.
Por exemplo, aqui está um caso simple que produz avisos de conversão para instruções de inserção.
mysql>create table t1(a tinyint NOT NULL, b char(4));
Query OK, 0 rows affected (0.00 sec) mysql>insert into t1 values(10,'mysql'),(NULL,'test'),(300,'open source');
Query OK, 3 rows affected, 4 warnings (0.15 sec) Records: 3 Duplicates: 0 Warnings: 4 mysql>show warnings;
+---------+------+---------------------------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------------------------+ | Warning | 1263 | Data truncated for column 'b' at row 1 | | Warning | 1261 | Data truncated, NULL supplied to NOT NULL column 'a' at row 2 | | Warning | 1262 | Data truncated, out of range for column 'a' at row 3 | | Warning | 1263 | Data truncated for column 'b' at row 3 | +---------+------+---------------------------------------------------------------+ 4 rows in set (0.00 sec)
O número máximo de avisos pode ser específicado usando a variável do servidor 'max_error_count'
, SET max_error_count=[count]
; Por padrão é 64. No caso de avisos desabilitados, simplesmente zere esta variável. No caso de max_error_count
ser 0, então o contador de avisos ainda representa quantos avisos ocorreram, mas nenhuma das mensagens são armazenadas.
Por exemplo, considere o seguinte instrução de tabela ALTER
para o exemplo acima, o qual retorna apenas um mensagem de aviso embora o total de avisos seja 3, ao definir max_error_count=1.