|
|
 |
連載
SQL
MySQLのトランザクション処理 |
|
1.トランザクションとは
まだトランザクション処理の意味がはっきりと分かっていない方は、
JDBCのトランザクション処理を参照して下さい。
MySQLの旧安定版の3.23 (Old production release) ではトランザクション処理はサポートされておらず、4.0からサポートされました。
Java等のプログラムから利用するにはJDBCのトランザクション処理を利用しますが、
SQLコマンドからトランザクション処理を扱えることで次のような利点があります。
- 複数のSQL文の組み合わせで一括更新(COMMIT)が可能
- 複数のSQL文の組み合わせの一括更新を元に戻す(ROLLBACK)ことが可能
|
2.トランザクションを可能にするテーブル型
MySQLにはテーブル型という固有の機能があり、デフォルトはMyISAM型となります。
通常にテーブルをCREATEしても、この型ではトランザクション処理はできません。
トランザクション処理を可能にするにはテーブルをInnoDB型にしなければなりません。
文法的には CREATE,ALTER文に TYPE=テーブル型名 を付加した形で作成・変更を行うことになります。
用意されているテーブル型の簡単な説明を以下に示します。
MySQLのテーブル型
| No. |
テーブル型名 |
機 能 |
備 考 |
| 1 |
ISAM |
固定長データにB-treeのインデックス構造を付けた形式 |
3.23以前でのデフォルト (5.0で削除予定) |
| 2 |
MyISAM |
ISAM形式にリカバリ機能、高速化等を拡張した形式 |
3.23からのデフォルト 高速な参照 |
| 3 |
MERGE |
MyISAM型のテーブルをマージした形式 |
|
| 4 |
HEAP |
メモリ上に一時的に格納するための形式 |
テンポラリ |
| 5 |
InnoDB |
トランザクション機能、外部キーによる参照整合性等をサポートする形式 |
安全な更新 |
| 6 |
BDB |
BDB(BerkeleyDB)エンジンを使用したトランザクション可能な形式 |
|
|
|
|