Wie zeige ich eine MySQL-Warnung an, die gerade passiert ist?


160

Ich habe gerade eine einfache MySQL CREATE TABLE-Anweisung ausgeführt, die die Zeile erzeugt hat

"Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,07 Sek.)."

Es zeigte mir jedoch nicht wirklich, was die Warnung war. Wie können Sie den Inhalt einer Warnung sehen, die gerade aufgetreten ist? Ich benutze MySQL 5.1, wenn es einen Unterschied macht. Das einzige, was ich online gefunden habe, war "SHOW WARNINGS"; aber das nur produziert

"Leerer Satz (0,00 Sek.)."


1
Wie andere für interaktives MySQL betont haben, können Sie (1.) die interaktive Sitzung mit --show-warnings(siehe ) starten man mysqloder (2.) wenn Sie sich in einer vorhandenen interaktiven Sitzung befinden, können Sie dasselbe Verhalten mit warnings(siehe man mysql) aktivieren .
Trevor Boyd Smith

Antworten:


200

SHOW WARNINGSist die einzige mir bekannte Methode, aber Sie müssen sie sofort nach einer Abfrage ausführen, an die Warnungen angehängt sind. Wenn Sie zwischendurch andere Abfragen ausgeführt oder die Verbindung getrennt haben, SHOW WARNINGSfunktioniert dies nicht.

Die MySQL-Handbuchseite für SHOW WARNINGS enthält keine anderen Methoden, daher bin ich mir ziemlich sicher, dass Sie daran festhalten .


Dies hat mir geholfen - aber Sie müssen es sofort nach einer Abfrage ausführen, an die Warnungen angehängt waren
wie

98

Sie können die Befehlszeile auch so einstellen, dass nach einer Abfrage mit \ W immer Warnungen angezeigt werden

Sie können sie mit \ w wieder ausschalten


3
Das war perfekt für mich. Fügen Sie '\ W' oben in mein Skript ein und wir können loslegen!
Matt Klein

1
Es ist noch vorhanden: dev.mysql.com/doc/refman/5.7/en/mysql-commands.html, aber Sie verwenden den command-line mysqlClient möglicherweise nicht . Es funktioniert nur in mysql, nicht in einer MySQL-Bibliothek.
Yvan

Gibt es eine Möglichkeit, dieses Flag aus der Datei .my.cnf zu setzen?
StR

22

@HorusKol, hast du Dokumentation dafür? Ich konnte keine finden. Aber ich habe herausgefunden, dass die Befehlszeilenoption --show-warningsden Job gemäß dem MySQL-Handbuch erledigt .


6
wenn Sie tun \? In der Befehlszeile für die MySQL-Hilfe sehen Sie die beiden Optionen für \ w (Warnungen aus) und \ W (Warnungen ein) - dies ist möglicherweise versionabhängig, aber ich bin mir ziemlich sicher, dass es die ganze Zeit in MySQL 5 war.
HorusKol

@HorusKol, doppelter Dank, dass du zurückgekommen bist und meinen schrecklichen Kommentar als Antwort beantwortet hast. (Ich war neu und wusste es nicht besser!)
Pops
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.