I *think* this is the deal: the default table type in MySQL is MyISAM, which is generally good for speed with web apps and such, but it does not support transactions. So MySQL will take the rollback command, but won't actually roll anything back.
To enable transactions, you must be working with an InnoDB table, which is the more hardcore table type in MySQL. It requires more resources to read and write these tables, but according to databasejournal.com, you get these benefits:
* ACID-compliant transactions.
* Full referential integrity
* Row-level locking
* Tables are stored in a tablespace (unlike MyISAM tables where each
table is a file)
Vincent Tsao wrote: