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.

Retornar