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)."

Pops
la source
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.

zombat
la source
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

HorusKol
la source
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 .

Pops
la source
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