Как показать предупреждение MySQL, которое только что произошло?


161

Я просто запустил простое утверждение MySQL CREATE TABLE, которое произвело строку

Msgstr "Запрос в порядке, затронуто 0 строк, 1 предупреждение (0,07 сек)."

Хотя на самом деле это не показывало, что это за предупреждение. Как вы можете увидеть содержание предупреждения, которое только что произошло? Я использую MySQL 5.1, если это имеет значение. Единственное, что я нашел в Интернете, было «ПОКАЗАТЬ ПРЕДУПРЕЖДЕНИЯ»; но это только произвело

«Пустой набор (0,00 с).»


1
как другие указывали на интерактивный mysql, вы можете: (1.) запустить интерактивный сеанс с --show-warnings(см. man mysql) или (2.), если вы находитесь в существующем интерактивном сеансе, вы можете включить то же поведение с помощью warnings(см. man mysql).
Тревор Бойд Смит

Ответы:


201

SHOW WARNINGSэто единственный известный мне метод, но вы должны запускать его сразу после запроса, к которому прикреплены предупреждения. Если вы выполнили какие-либо другие запросы между ними или сбросили соединение, то SHOW WARNINGSэто не сработает.

Страница справочника MySQL для SHOW WARNINGS не содержит никаких других методов, поэтому я совершенно уверен, что вы застряли с ней.


Это помогло мне - но вы должны запустить его сразу после запроса, к которому были прикреплены предупреждения
просит

98

Вы также можете установить в командной строке отображение предупреждений после запроса, используя \ W

Вы можете снова отключить их с помощью \ w


3
Это было идеально для меня. Добавьте '\ W' в начало моего сценария, и мы готовы!
Мэтт Кляйн

1
Он все еще существует: dev.mysql.com/doc/refman/5.7/en/mysql-commands.html, но вы, возможно, не используете command-line mysqlклиент. Это работает только в mysql, а не в библиотеке MySQL.
Иван

Есть ли способ установить этот флаг из файла .my.cnf?
StR

22

@ HorusKol, у вас есть документация для этого? Я не мог найти ни одного. Но я обнаружил, что опция командной строки --show-warningsбудет выполнять эту работу, согласно руководству MySQL .


6
если вы делаете \? в командной строке справки MySQL вы можете увидеть две опции для \ w (предупреждения отключены) и \ W (предупреждения включены) - это может зависеть от версии, но я уверен, что все это время было в MySQL 5.
HorusKol

@HorusKol, двойное спасибо за то, что вернулись и ответили на мой ужасный комментарий как ответ. (Я был новичком, и не знал ничего лучше!)
Pops
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.