¿Cómo muestro una advertencia de MySQL que acaba de suceder?

161

Acabo de ejecutar una simple declaración CREATE TABLE de MySQL que produjo la línea

"Consulta OK, 0 filas afectadas, 1 advertencia (0.07 segundos)".

Sin embargo, en realidad no me mostró cuál era la advertencia. ¿Cómo puede ver el contenido de una advertencia que acaba de ocurrir? Estoy usando MySQL 5.1, si hace la diferencia. Lo único que encontré en línea fue "SHOW WARNINGS"; pero eso solo produjo

"Conjunto vacío (0.00 seg)".

Estallidos
fuente
1
como otros han señalado para mysql interactivo, puede (1.) iniciar la sesión interactiva con --show-warnings(ver man mysql) o (2.) si está en una sesión interactiva existente, puede habilitar el mismo comportamiento con warnings(ver man mysql).
Trevor Boyd Smith

Respuestas:

201

SHOW WARNINGSes el único método que conozco, pero debe ejecutarlo inmediatamente después de una consulta que tenía advertencias adjuntas. Si ejecutó cualquier otra consulta en el medio o interrumpió la conexión, entonces SHOW WARNINGSno funcionará.

La página del manual de MySQL para SHOW WARNINGS no indica ningún otro método, por lo que estoy bastante seguro de que está atrapado en él.

zombat
fuente
Esto me ayudó, pero debe ejecutarlo inmediatamente después de una consulta que tenía advertencias adjuntas
pide el
98

También puede configurar la línea de comando para que siempre muestre advertencias después de una consulta usando \ W

Puede apagarlos nuevamente con \ w

HorusKol
fuente
3
Esto fue perfecto para mi. ¡Agregue '\ W' a la parte superior de mi script y listo!
Matt Klein
1
Todavía existe: dev.mysql.com/doc/refman/5.7/en/mysql-commands.html pero es posible que no esté utilizando el command-line mysqlcliente. Solo funciona en mysql, no en una biblioteca MySQL.
Yvan
¿Hay alguna manera de establecer esta bandera desde el archivo .my.cnf?
StR
22

@HorusKol, ¿tiene documentación para eso? No pude encontrar ninguno. Pero descubrí que la opción de línea de comando --show-warningshará el trabajo, de acuerdo con el manual de MySQL .

Estallidos
fuente
66
si lo haces \? en la línea de comando para la ayuda de MySQL, puede ver las dos opciones para \ w (advertencias desactivadas) y \ W (advertencias activadas); esto puede depender de la versión, pero estoy bastante seguro de que ha estado en MySQL 5 todo este tiempo.
HorusKol
@HorusKol, doble agradecimiento por volver y responder a mi horrible comentario como respuesta. (¡Era nuevo y no sabía nada mejor!)
Aparece