SHOW WARNINGS [LIMIT [offset,] row_count] SHOW COUNT(*) WARNINGS
Cette commande affiche les erreurs, alertes et notes qui ont
été générées par la dernière commande. Les erreurs et
alertes sont remises à zéro pour chaque nouvelle commande
qui utilisent une table. Cette commande a été implémentée
depuis MySQL 4.1.0. Une commande connexe, SHOW
ERRORS
, affiche uniquement les erreurs. See
Section 13.5.3.8, « Syntaxe de SHOW ERRORS
».
La liste de messages est remise à zéro au début de chaque commande qui utilise la table.
La commande SHOW COUNT(*) WARNINGS
affiche
le nombre total d'erreurs, d'alertes et de notes. Vous pouvez
aussi lire ce nombre avec la variable
warning_count
:
SHOW COUNT(*) WARNINGS; SELECT @@warning_count;
La valeur de warning_count
peut être plus
grande que le nombre de messages affichés par SHOW
WARNINGS
si la variable système
max_error_count
est configurée assez bas
pour que tous les messages ne soient pas stockés. Un exemple
plus loin dans cette section montre ce qui arrive.
La clause LIMIT
a la même syntaxe que la
commande SELECT
. See
Section 13.1.7, « Syntaxe de SELECT
».
Le serveur MySQL retourne le nombre total d'alertes et
d'erreurs que vous avez obtenu lors de la dernière commande.
Ils sont disponibles avec la fonction
mysql_warning_count()
. See
Section 24.2.3.61, « mysql_warning_count()
».
Jusqu'à max_error_count
messages peuvent
être stockés (variable globale et spécifique aux threads).
Vous pouvez lire le nombre d'erreurs dans
@error_count
et le nombre d'alertes dans
@warning_count
.
SHOW WARNINGS
affiche aussi toutes les
erreurs, alertes et notes de la dernière commande, alors que
SHOW ERRORS
ne montre que les erreurs.
mysql>DROP TABLE IF EXISTS no_such_table;
mysql>SHOW WARNINGS;
+-------+------+-------------------------------+ | Level | Code | Message | +-------+------+-------------------------------+ | Note | 1051 | Unknown table 'no_such_table' | +-------+------+-------------------------------+
Notez que depuis MySQL 4.1.0, nous avons ajouté un nouveau
système d'alertes, et peu de commandes MySQL génère des
alertes. 4.1.1 supporte toutes sortes d'alertes pour
LOAD DATA INFILE
et les commandes DML
telles que INSERT
,
UPDATE
et ALTER
.
Par exemple, voici une situation simple qui produit des alertes de conversions pour une commande d'insertion :
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)
Le nombre maximal d'alertes peut être spécifié en utilisant
la variable de serveur 'max_error_count'
,
SET max_error_count=[count]
; Par défaut,
c'est 64. Pour désactiver les alertes, donnez simplement la
valeur de 0 à la variable. Si
max_error_count
vaut 0, alors le nombre
d'alertes représente toujours le nombre d'alertes qui ont eu
lieu, mais aucun message d'erreur n'est accessible.
Par exemple, observez la commande ALTER
suivante, pour l'exemple ci-dessus, qui retourne uniquement
une alerte, même si le nombre total d'alertes est de 3
lorsque 'max_error_count'
=1.
mysql>show variables like 'max_error_count';
+-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_error_count | 64 | +-----------------+-------+ 1 row in set (0.00 sec) mysql>set max_error_count=1;
Query OK, 0 rows affected (0.00 sec) mysql>alter table t1 modify b char;
Query OK, 3 rows affected, 3 warnings (0.00 sec) Records: 3 Duplicates: 0 Warnings: 3 mysql>show warnings;
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1263 | Data truncated for column 'b' at row 1 | +---------+------+----------------------------------------+ 1 row in set (0.00 sec) mysql>
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.