Hi there wallunchan,
what storage engine do you use for your tables? InnoDB tables should in theory be able to handle this without problems, if I understand matters correctly. During an update, the data is first written to a log and then to the table space. If the unexpected (or, in your application, the expected) happens, it should be able to roll back half-written rows. For this to work, you should probably:
1. Convert all tables to InnoDB.
2. Not perform any updates on tables that you
must not convert to InnoDB (such as the mysql.user table). Make sure that you do not convert MySQL's internal tables to InnoDB!
Hope this helps. If or if not, hope to hear from you!
