- PR -

トランザクションの基本について

1
投稿者投稿内容
カタナ
大ベテラン
会議室デビュー日: 2006/05/25
投稿数: 110
投稿日時: 2006-06-21 19:41
いつも参考にさせて頂いております。今回、教えていただきたいことはトランザクションについてです。
入社したての頃に先輩にトランザクションについて教えてもらった際にマスタ画面のように1画面で1つのテーブルを更新する場合はトランザクションはきらなくてもいいと教わりました。(たとえおちてもデータが更新されていないからロールバックする必要がないとの事)
この教えは正しいのでしょうか?今まで漠然とその話を信用していたのですが、最近、不安になってきました。初歩的な質問で申し訳ないのですが、よろしくお願いいたします。

ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-06-21 20:16
悲観的ロックでない前提だよね?

単一データの更新であればそうだが、複数データを更新する場合は状況が変わるんじゃないかな。
カタナ
大ベテラン
会議室デビュー日: 2006/05/25
投稿数: 110
投稿日時: 2006-06-21 20:50
>悲観的ロックでない前提だよね?
悲観的ロック(自分が操作している情報は,他の人も操作する可能性がある)という意味でしたら悲観的ロックもあるかと・・・。
たとえば商品マスタがあって、その商品は自分も操作をするけど他の人も操作をする可能性はありますよね?
もしも見当違いなことを言っていたら申し訳ありません。

>単一データの更新であればそうだが、複数データを更新する場合は状況が変わるん
>じゃないかな。
それはそうだと思います。私も複数データを更新する場合はトランザクションをきる必要があると思います。
ということは単一データであればトランザクションをきる必要はないということでいいのでしょうか?
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-06-21 21:33
引用:

カタナさんの書き込み (2006-06-21 20:50) より:
悲観的ロック(自分が操作している情報は,他の人も操作する可能性がある)という意味でしたら悲観的ロックもあるかと・・・。
たとえば商品マスタがあって、その商品は自分も操作をするけど他の人も操作をする可能性はありますよね?
もしも見当違いなことを言っていたら申し訳ありません。


いやそういう意味じゃない。けどまあいいや。
引用:

それはそうだと思います。私も複数データを更新する場合はトランザクションをきる必要があると思います。
ということは単一データであればトランザクションをきる必要はないということでいいのでしょうか?


ひとつのコマンドでも複数の行に影響を受けることはあるよね。
まあAutoCommitっちゅー考えからすると、ひとつのコマンドが終わったらそこで自動コミットだから問題はないはずだけどね。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2006-06-21 22:08
http://blogs.sqlpassj.org/akiraonishi/articles/5026.aspx
1

スキルアップ/キャリアアップ(JOB@IT)