Hi,

You could change your server's SQL mode to be as restrictive as possible (STRICT_TRANS_TABLES, etc) so the scripts cause errors, instead of warnings. Read the MySQL manual section on SQL mode and decide which things you want to throw errors. Not all things can be changed to errors; you will still have the possibility of some warnings.

Note that you can change the SQL mode for just the current connection; it doesn't have to be server-wide.

By the way, did you notice from the output of ? in the mysql client that you can instruct it to automatically print warnings when they exist?

You could also write a small script to parse the SQL file from your engineers into individual commands separated by blank lines, and execute them one at at time, catch errors, and if there's an error print out the statement that caused it. I wrote a Perl module to do this at my employer. I use it to run batch commands. If you do this, take a look at the DBD::mysql documentation; there is a place where the warning count is exposed, and you can examine this after each command and see if it raised any warnings. I wrote code to treat this just like an error: fetch and print the warnings, then exit with an error.

Cheers
Baron

Ananda Kumar wrote:
Hi Baron,
I cannot do this, becuase the file would be given by engineers and to be
applied on mysql and i need to inform them about any error after i apply
them in mysql db.

regards
anandkl


On 5/21/07, Baron Schwartz <[EMAIL PROTECTED]> wrote:

Hi,

I see now -- you want to see which commands were executed from the file
you sourced.
As far as I know you cannot do this.  You could add some debugging
statements in the
file, like

SELECT 'about to drop the table';

Then in the output you will see this, and it may give you a hint as to
where the error
happened.

Baron

Ananda Kumar wrote:
> Hi Baron,
> This will give only the results of the command. It does not include sql
> statement.
> I need the sql statement to know which sql errored out.
>
> Database changed
> +----------+
> | count(*) |
> +----------+
> |        5 |
> +----------+
> 1 row in set (0.00 sec)
>
>
>
> On 5/21/07, Baron Schwartz <[EMAIL PROTECTED]> wrote:
>>
>> Hi,
>>
>> Ananda Kumar wrote:
>> > Hi All,
>> > I am executing a script from  mysql prompt as below
>> >
>> > mysql > source ddl.txt
>> >
>> > I want to spool the out put of the above command to a file along with
>> the
>> > sql statments. Can you please let me know what parameter should i set
>> for
>> > the this.
>>
>> Use the 'tee' command in the mysql client.  Press ? in the client and
it
>> will give you
>> instructions.
>>
>> Baron
>>
>

--
Baron Schwartz
http://www.xaprb.com/



--
Baron Schwartz
http://www.xaprb.com/

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to