MySQLでのロールバック + 「MyISAM」と「InnoDB」の違いなど
MySQLでロールバック処理を行いたい場合、テーブル形式は「InnoDB」である必要があります。デフォルトである「MyISAM」ではダメです。
ただし、以下のようにして「MyISAM」→「InnoDB」への変換が可能です。
ALTER TABLE tableName TYPE=InnoDB;
ちなみに「MyISAM」と「InnoDB」の違いは下記の通りです。、
MySQLではトランザクションセーフなテーブル(InnoDBなど)と非トランザクションセーフなテーブル(MyISAMなど)を 作る事ができます。手動トランザクションが使えるのはトランザクションセーフなテーブルだけです。 MyISAMなどの非トランザクションセーフなテーブルの場合は、データベースの変更は直ちにコミットされます。 http://www.y2sunlight.com/ground/?MySQL4.1%2F9.MySQL%A4%CE%BC%C2%B8%B3%2F4.%A5%C8%A5%E9%A5%F3%A5%B6%A5%AF%A5%B7%A5%E7%A5%F3
頻繁に更新が行われるようなシステムでは一般に「InnoDB」が使われ、あまり更新が行われないシステムでは「MyISAM」が使われることが多いようです。※「MyISAM」の方が早いため
また「InnoDB」では更新時のロックが行単位なのに対し、「MyISAM」ではテーブル単位でロックされるという違いがあります。