Comment afficher un avertissement MySQL qui vient de se produire?


161

Je viens d'exécuter une simple instruction MySQL CREATE TABLE qui a produit la ligne

"Requête OK, 0 ligne affectée, 1 avertissement (0,07 s)."

Cependant, cela ne m'a pas vraiment montré quel était l'avertissement. Comment pouvez-vous voir le contenu d'un avertissement qui vient de se produire? J'utilise MySQL 5.1, si cela fait une différence. La seule chose que j'ai trouvée en ligne était "SHOW WARNINGS"; mais cela a seulement produit

"Ensemble vide (0,00 s)."


1
comme d'autres l'ont souligné pour mysql interactif, vous pouvez, (1.) démarrer la session interactive avec --show-warnings(voir man mysql) ou (2.) si vous êtes dans une session interactive existante, vous pouvez activer le même comportement avec warnings(voir man mysql).
Trevor Boyd Smith

Réponses:


201

SHOW WARNINGSest la seule méthode que je connaisse, mais vous devez l'exécuter immédiatement après une requête à laquelle des avertissements étaient attachés. Si vous avez exécuté d'autres requêtes entre les deux ou si vous avez interrompu la connexion, SHOW WARNINGScela ne fonctionnera pas.

La page de manuel MySQL pour SHOW WARNINGS n'indique aucune autre méthode, donc je suis assez certain que vous êtes coincé avec elle.


Cela m'a aidé - mais vous devez l'exécuter immédiatement après une requête
contenant des

98

Vous pouvez également définir la ligne de commande pour toujours afficher les avertissements après une requête en utilisant \ W

Vous pouvez les désactiver à nouveau avec \ w


3
C'était parfait pour moi. Ajoutez '\ W' en haut de mon script et nous sommes prêts à partir!
Matt Klein

1
Il existe toujours: dev.mysql.com/doc/refman/5.7/en/mysql-commands.html mais vous n'utilisez peut-être pas le command-line mysqlclient. Cela ne fonctionne que dans mysql, pas dans une bibliothèque MySQL.
Yvan

Existe-t-il un moyen de définir cet indicateur à partir du fichier .my.cnf?
StR

22

@HorusKol, avez-vous de la documentation pour ça? Je n'en ai pas trouvé. Mais j'ai découvert que l'option de ligne de commande --show-warningsfera l'affaire, selon le manuel MySQL .


6
si tu fais \? dans la ligne de commande de l'aide MySQL, vous pouvez voir les deux options pour \ w (avertissements désactivés) et \ W (avertissements activés) - cela peut dépendre de la version, mais je suis presque sûr que cela a été dans MySQL 5 tout ce temps.
HorusKol

@HorusKol, double merci d'être revenu et d'avoir répondu à mon horrible commentaire comme réponse. (J'étais nouveau et je ne savais pas mieux!)
Pop
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.