Has anyone ever seen a partial execution of an UPDATE statement?

I'm using Perl DBI to update a table in MySQL.

The strangest thing to me is that a varchar(35) field which holds a custom
date/time format was updated correctly, but other tinyint(1) fields were not
set correctly, and 1 of 3 text fields which were supposed to add the new
"log" to existing logs in the 3 fields did not appear in the 1 field, but
did in the other 2.

I found the query in the mysql query log file and some of the text had
newlines.  So I thought the query may have failed at this point, BUT when
manually executing the query in phpMyAdmin, it executed fine.  I thought the
whole query would fail due to possibly not escaping some characters.  BUT,
like I said before, even this logic is incorrect because some fields were
updated before my manual attempt at testing the query.

The only similar behavior I've seen is using C/C++ with printf and sometimes
you need to add a "flush" statement so the text really prints.

Basically for 5 years, this script has used the following sequence (prepare,
execute, finish).  But there have been recent changes to the script.  Only
one record is showing this strange behavior (but it most likely touches code
that other records do not).

After the successful manual execution of the statement, the 3 text fields do
not verify my claim that 1 in 3 had previously failed.  BUT the custom
date/time field was confirmed by a few people to have been updated (when
other fields were not), so I may not be going crazy.

This is a single UPDATE statement.  No transactions are involved.


Reply via email to