diff options
Diffstat (limited to 'sql/sql_update.cc')
-rw-r--r-- | sql/sql_update.cc | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/sql/sql_update.cc b/sql/sql_update.cc index 61df6b0b871..7c9ead7591c 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -643,14 +643,6 @@ int mysql_update(THD *thd, updated++; else error= 0; - - if (table->triggers && - table->triggers->process_triggers(thd, TRG_EVENT_UPDATE, - TRG_ACTION_AFTER, TRUE)) - { - error= 1; - break; - } } else if (!ignore || table->file->is_fatal_error(error, HA_CHECK_DUP_KEY)) @@ -669,6 +661,14 @@ int mysql_update(THD *thd, } } + if (table->triggers && + table->triggers->process_triggers(thd, TRG_EVENT_UPDATE, + TRG_ACTION_AFTER, TRUE)) + { + error= 1; + break; + } + if (!--limit && using_limit) { /* @@ -1633,12 +1633,12 @@ bool multi_update::send_data(List<Item> ¬_used_values) trans_safe= 0; thd->transaction.stmt.modified_non_trans_table= TRUE; } - if (table->triggers && - table->triggers->process_triggers(thd, TRG_EVENT_UPDATE, - TRG_ACTION_AFTER, TRUE)) - DBUG_RETURN(1); } } + if (table->triggers && + table->triggers->process_triggers(thd, TRG_EVENT_UPDATE, + TRG_ACTION_AFTER, TRUE)) + DBUG_RETURN(1); } else { @@ -1860,12 +1860,12 @@ int multi_update::do_updates() updated++; else local_error= 0; - - if (table->triggers && - table->triggers->process_triggers(thd, TRG_EVENT_UPDATE, - TRG_ACTION_AFTER, TRUE)) - goto err2; } + + if (table->triggers && + table->triggers->process_triggers(thd, TRG_EVENT_UPDATE, + TRG_ACTION_AFTER, TRUE)) + goto err2; } if (updated != org_updated) |