Jak wyświetlić ostrzeżenie MySQL, które właśnie się wydarzyło?


160

Właśnie uruchomiłem prostą instrukcję MySQL CREATE TABLE, która utworzyła wiersz

„Zapytanie OK, problem dotyczy 0 wierszy, 1 ostrzeżenie (0,07 s)”.

Jednak tak naprawdę nie pokazało mi, jakie było ostrzeżenie. Jak możesz zobaczyć treść ostrzeżenia, które właśnie się pojawiło? Używam MySQL 5.1, jeśli to robi różnicę. Jedyne, co znalazłem w sieci, to „POKAŻ OSTRZEŻENIA”; ale to tylko wyprodukowało

„Pusty zestaw (0,00 s)”.


1
jak inni wskazywali w przypadku interaktywnego mysql, możesz (1.) rozpocząć sesję interaktywną za pomocą --show-warnings(patrz man mysql) lub (2.) Jeśli jesteś w istniejącej sesji interaktywnej, możesz włączyć to samo zachowanie za pomocą warnings(zobacz man mysql).
Trevor Boyd Smith

Odpowiedzi:


200

SHOW WARNINGSjest jedyną znaną mi metodą, ale musisz ją uruchomić natychmiast po zapytaniu, do którego zostały dołączone ostrzeżenia. Jeśli w międzyczasie wykonałeś inne zapytania lub zerwałeś połączenie, SHOW WARNINGSnie zadziała.

Strona podręcznika MySQL dla SHOW WARNINGS nie wskazuje żadnych innych metod, więc jestem prawie pewien, że utknąłeś z tym.


Pomogło mi to - ale musisz go uruchomić natychmiast po zapytaniu, które miało dołączone ostrzeżenia
asgs

98

Możesz także ustawić wiersz poleceń tak, aby zawsze wyświetlał ostrzeżenia po zapytaniu za pomocą \ W

Możesz je ponownie wyłączyć za pomocą \ w


3
To było dla mnie idealne. Dodaj „\ W” na początku mojego skryptu i gotowe!
Matt Klein,

1
Nadal istnieje: dev.mysql.com/doc/refman/5.7/en/mysql-commands.html, ale być może nie używasz command-line mysqlklienta. Działa tylko w mysql, a nie w bibliotece MySQL.
Yvan

Czy istnieje sposób na ustawienie tej flagi z pliku .my.cnf?
StR

22

@HorusKol, czy masz na to dokumentację? Nie mogłem znaleźć żadnego. Ale dowiedziałem się, że opcja wiersza poleceń --show-warningswykona zadanie, zgodnie z podręcznikiem MySQL .


6
Jeśli zrobisz \? w wierszu poleceń pomocy MySQL możesz zobaczyć dwie opcje \ w (ostrzeżenia wyłączone) i \ W (ostrzeżenia włączone) - może to zależeć od wersji, ale jestem prawie pewien, że przez cały ten czas było w MySQL 5.
HorusKol

@HorusKol, podwójne dzięki za powrót i odpowiedź na mój okropny komentarz jako odpowiedź. (Byłem nowy i nie wiedziałem nic lepszego!)
Pojawia się
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.