Warnings by HediSQL

[expired user #9523]'s profile image [expired user #9523] posted 8 years ago in Running SQL scripts Permalink

I've developed a simple database and have been adding dfata to it manually andf it works just fine. I then copied the resulting SQL code into a query and saved it so that all I have to do is run the query to save me manually re-entering the data.

This works fine i.e. the data gets placed where it should, but HeidiSQL shows one warning when it's done.

The data seems fine (two tables linked by a foreign key which allows me to select the entry to be placed in a column in one table by reference to entries in a column in the other table.

Can anyone explain why I get a warning after running it as a batch from a query but when I do it manually it all sems to work well.

As I'm fairly new to SQL I'm worried that I might have a problem with my schema.

kalvaro's profile image kalvaro posted 8 years ago Permalink

The root problem is that the SQL standards mandate that warning list is cleared upon successful completion of certain operations. When you run any batch process HeidiSQL fetches the list of warnings, but only onceā€”at the end. This is something what could be improved though I'm not sure of what GUI would be appropriate to display a potentially huge list of warnings that are related to a potentially huge list of SQL statements.

(Disclaimer: I'm not a HeidiSQL dev, I'm just a regular user.)

So far, you need a different MySQL client if you want to see the warnings. For instance, HeidiSQL will open the official command-line client (as long as it's installed and configured) at "Tools-> Launch command line". There, you can enable the warnings option and then run your batch with the source command. (You might need to redirect output to a file in order to see something.)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> \h

For information about MySQL products and services, visit:
   http://www.mysql.com/
For developer information, including the MySQL Reference Manual, visit:
   http://dev.mysql.com/
To buy MySQL Enterprise support, training, or other products, visit:
   https://shop.mysql.com/

List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
?         (\?) Synonym for `help'.
clear     (\c) Clear the current input statement.
connect   (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
ego       (\G) Send command to mysql server, display result vertically.
exit      (\q) Exit mysql. Same as quit.
go        (\g) Send command to mysql server.
help      (\h) Display this help.
notee     (\t) Don't write into outfile.
print     (\p) Print current command.
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.
rehash    (\#) Rebuild completion hash.
source    (\.) Execute an SQL script file. Takes a file name as an argument.
status    (\s) Get status information from the server.
tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. Takes database name as argument.
charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings  (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
kalvaro's profile image kalvaro posted 8 years ago Permalink

I forgot to mention that warnings tend to highlight minor issues you don't normally have the time and need to fix, such as using deprecated MySQL syntaxes or inserting empty strings where a NULL would be preferred.

[expired user #9523]'s profile image [expired user #9523] posted 8 years ago Permalink

Kalvaro That's very helpful. Thank you for replying to my query. I have to say that I find HediSQL extremely useful. I suspect my next purchase will be DaDaBik so I can quickly build a front end for my CRUD functions.

Please login to leave a reply, or register at first.