How do I show a MySQL warning that just happened?

Mysql

Mysql Problem Overview


I just ran a simple MySQL CREATE TABLE statement that produced the line

>"Query OK, 0 rows affected, 1 warning (0.07 sec)."

It didn't actually show me what the warning was, though. How can you see the contents of a warning that just occurred? I'm using MySQL 5.1, if it makes a difference. The only thing I found online was "SHOW WARNINGS;" but that only produced

> "Empty set (0.00 sec)."

Mysql Solutions


Solution 1 - Mysql

SHOW WARNINGS is the only method I'm aware of, but you have to run it immediately after a query that had warnings attached to it. If you ran any other queries in between, or dropped the connection, then SHOW WARNINGS won't work.

The MySQL manual page for SHOW WARNINGS doesn't indicate any other methods, so I'm fairly certain that you're stuck with it.

Solution 2 - Mysql

You can also set the command line to always display warnings after a query using \W

You can switch them off again with \w

Solution 3 - Mysql

@HorusKol, do you have documentation for that? I couldn't find any. But I did find out that the command line option --show-warnings will do the job, according to the MySQL manual.

Solution 4 - Mysql

When MySQL database imports data, warnings often appear.

These warnings are easy to be ignored.

I suddenly want to see what the warnings are when I get to the data today.

MySQL view warning command

show warnings;

The command is very concise, and the general warning is like this when I check it.

Warning | 1265 | Data truncated for column ‘title’ at row 1265

This warning is that the field length is not enough,

the imported data is automatically cropped by the system.

| Warning | 1366 | Incorrect string value: ‘\xB5\xDA\xB6\xFE\xBD\xEC...‘ for column ‘Journal title’ at row 1444 |

This is the wrong character set of the data.

For the second one, you need to modify the character set of the database or the txt encoding format of the imported data.

| Warning | 1366 | Incorrect integer value: ‘‘ for column ‘work number’ at row 13 |

This is to insert empty data, if the field allows null values, you can ignore these warnings. 4.

| Warning | 1262 | Row 11 was truncated; it contained more data than there were input columns |

This is a redundant column of imported data.

The MySQL warning is easy to understand, and it is easy to modify the table after the warning message.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPopsView Question on Stackoverflow
Solution 1 - MysqlzombatView Answer on Stackoverflow
Solution 2 - MysqlHorusKolView Answer on Stackoverflow
Solution 3 - MysqlPopsView Answer on Stackoverflow
Solution 4 - MysqlVittore MarcasView Answer on Stackoverflow