insert1つの処理でもトランザクションは必要?
お世話になります。
現在、MYSQLデータベースを使用したプログラムを書いており、
そこでトランザクションについて質問があります。
トランザクションとは、複数の処理がすべて成功した場合に正式な処理を実行(commit)、1つでも失敗した場合は元に戻す(rollback)というようなことかと思うのですが、
では、1つの処理のみの場合は、トランザクションを使用する必要はないのでしょうか?
例えば、
・あるテーブルにデータをinsertしたい。
このような単一の処理を書く場合でも、
以下のようにトランザクションを使うべきでしょうか?
$dsn = 'mysql:dbname=〇〇〇;host=〇〇〇;charset=utf8';
$user = 'user';
$pwd = 'pwd';
//DB接続
try {
$pdo = new PDO($dsn, $user, $pwd);
} catch (PDOException $e) {
die('DB接続失敗');
}
//トランザクション開始
$pdo->beginTransaction();
//INSERT
try {
$sql = 'INSERT into table (test1, test2, test3) VALUES (:a, :b, :c)';
$st= $pdo->prepare($sql);
$ret = $st->execute(array(
':a' => $a,
':b' => $b,
':c' => $c,
));
if (!$ret) {
throw new Exception('INSERT 失敗');
}
//commit
$pdo->commit();
} catch (PDOException $e) {
//rollback
$pdo->rollBack();
}
$pdo = null;
※前提として、テーブルを使用するユーザーは多数います。
ご存知の方、ご回答いただけるれば幸いです。
よろしくお願い致します。
お礼
更新テーブルが1つだけの場合のみ、トラザクション処理が不要なのですね。 ありがとうございました。