Como mostro um aviso do MySQL que acabou de acontecer?

160

Acabei de executar uma simples instrução MySQL CREATE TABLE que produziu a linha

"Consulta OK, 0 linhas afetadas, 1 aviso (0,07 s)."

Na verdade, não me mostrou qual era o aviso. Como você pode ver o conteúdo de um aviso que acabou de ocorrer? Estou usando o MySQL 5.1, se isso faz diferença. A única coisa que encontrei on-line foi "MOSTRAR AVISOS"; mas isso só produziu

"Conjunto vazio (0,00 seg.)."

Pops
fonte
1
como outros apontaram para o mysql interativo, você pode, (1.) iniciar a sessão interativa com o --show-warnings(consulte man mysql) ou (2.) se você estiver em uma sessão interativa existente, poderá ativar o mesmo comportamento com warnings(consulte man mysql).
Trevor Boyd Smith

Respostas:

200

SHOW WARNINGSé o único método que conheço, mas você deve executá-lo imediatamente após uma consulta que contenha avisos anexados. Se você executou outras consultas ou interrompeu a conexão, SHOW WARNINGSnão funcionará.

A página de manual do MySQL para SHOW WARNINGS não indica nenhum outro método, por isso estou bastante certo de que você está preso a ela.

zombat
fonte
Isso me ajudou - mas você tem que executá-lo imediatamente após uma consulta que tinha advertências ligado a ele
ASGs
98

Você também pode definir a linha de comando para sempre exibir avisos após uma consulta usando \ W

Você pode desativá-los novamente com \ w

HorusKol
fonte
3
Isso foi perfeito para mim. Adicione '\ W' ao topo do meu script e pronto!
22613 Matt
1
Ele ainda existe: dev.mysql.com/doc/refman/5.7/en/mysql-commands.html, mas você pode não estar usando o command-line mysqlcliente. Ele funciona apenas mysql, não em uma biblioteca MySQL.
Yvan
Existe uma maneira de definir esse sinalizador do arquivo .my.cnf?
StR 24/01
22

@HorusKol, você tem documentação para isso? Não consegui encontrar nenhum. Mas eu descobri que a opção de linha de comando --show-warningsfará o trabalho, de acordo com o manual do MySQL .

Pops
fonte
6
se você fizer \? na linha de comando da ajuda do MySQL, você pode ver as duas opções para \ w (avisos desativados) e \ W (avisos ativados) - isso pode depender da versão, mas tenho certeza que ele está no MySQL 5 todo esse tempo.
HorusKol
@HorusKol, obrigado por voltar e responder meu comentário horrível como resposta. (Eu era novo, e não sabia de nada!)
Pops