| 14.5.3 Syntaxe de SHOW
 14.5 Référence de langage d'administration de la base de données
 14 Syntaxe des commandes SQL
 Manuel de Référence MySQL 4.1 : Version Française
 
 . Syntaxe de SET
 . Commande SHOW CHARACTER SET
 . Syntaxe de SHOW COLLATION
 . Syntaxe de SHOW COLUMNS
 . Syntaxe de SHOW CREATE DATABASE
 . Syntaxe de SHOW CREATE TABLE
 . Syntaxe SHOW CREATE VIEW
 . Syntaxe de SHOW DATABASES
 . Syntaxe SHOW ENGINES
 . Syntaxe de SHOW ERRORS
 . SHOW GRANTS
 . Syntaxe de SHOW INDEX
 . Syntaxe de SHOW INNODB STATUS
 . Syntaxe de SHOW LOGS
 . SHOW PRIVILEGES
 . Syntaxe de SHOW PROCESSLIST
 . Syntaxe de SHOW STATUS
 . SHOW TABLE STATUS
 . Syntaxe de SHOW TABLES
 . Syntaxe de SHOW VARIABLES
 ->SHOW WARNINGS | ERRORS
 
 
 | 
  14.5.3.21 SHOW WARNINGS | ERRORS 
 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.
 Syntaxe de 
SHOW ERRORS
 .| 
SHOW WARNINGS [LIMIT [offset,] row_count]SHOW COUNT(*) WARNINGS
 | 
 
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
  : 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
 .
 Syntaxe de 
SELECT
 .| 
SHOW COUNT(*) WARNINGS;SELECT @@warning_count;
 | 
 
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()
 .
 
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. 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
 .| 
mysql> DROP TABLE IF EXISTS no_such_table;mysql> SHOW WARNINGS;
 
 +-------+------+-------------------------------+
 | Level | Code | Message                       |
 +-------+------+-------------------------------+
 | Note  | 1051 | Unknown table 'no_such_table' |
 +-------+------+-------------------------------+
 | 
 
Par exemple, voici une situation simple qui produit des alertes de conversions
pour une commande d'insertion : 
 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.| 
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)
 | 
 
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>
 | 
 |