2011-01-01 1 views
1

私は基本的にSQLの新機能であり、ロックは混乱しています。SQLでアイテムのセットをロックするにはどうすればよいですか?

私が今困惑しているケースは、レコードのグループによって記述されたアイテムの編集/更新の処理方法です。変更を書き戻すときは、元のレコードよりも多くのレコードがあるかもしれません。

(私はそれについて知りたいのですが、ロックSQL上の任意の良い参照があります場合にも、私は何も見つかっていない。。)

日時:コメント:

私は現在で働いていますSQL Serverを使用していますが、特定のデータベースに対する依存関係を最小限に抑えることを望んでいます。

私はトランザクションについて理解していますが、処理中にレコードが作成または削除される可能性があるため、この特定のケースでの適用方法はわかりません。

保存中に親アイテムをロックするだけで、それを構成するレコードについて心配する必要はありませんか?

+1

RDBMSとは何ですか?また、セットのメンバーシップが変わった場合には、何をしたいのですか?これを防ぐには、シリアライズ可能な分離レベルを調べる必要があります。しかし、「変更を書き戻す時が来たとき」とはどういう意味ですか?並行性のために、可能な限り最短の期間だけデータベースロックを使用します。 –

+0

状況を反映した具体的なシナリオの詳細を教えてください。あなたが何をしようとしているのかまだ分かりません。 –

答えて

1

自動コミットがオフになっていることを確認し、select for updateを使用してください。構文はdb固有です。例は次のとおりです。

select * from emp where id = 2 for update 
1

あなたの質問は100%明確ではありません。

2つ以上のテーブルに情報を書き込む必要がある場合は、トランザクションを使用します。

1つのテーブル内のレコードのグループを更新することは、1つのUPDATEステートメントとして記述することができます。これはアトミックです。

+0

しかし、更新は更新、挿入、削除です。 –

2

データベースのロックを手動で管理することを心配する必要はほとんどありません。たぶん、あなたが何をしようとしているのか、おそらくいくつかのコードを使って、もう少し詳しく話すことができます。そして、正しい方向に向けることができます。この種のヘルプが必要な場合は、使用しているデータベースも教えてください。単なる人間のための

  • SQLクエリ(http://www.amazon.com/dp/:

    あなただけの読み込みを開始する場所を探しているなら、私は1つまたはこれらの本のすべてをお勧めします0321444434 /)

  • 単なる人間のためのデータベース設計(http://www.amazon.com/dp/0201752840/)
  • 学習SQL(http://www.amazon.com/dp/0596520832/)
  • SQL Cookbook(http://www.amazon.com/dp/0596009763/)

オンラインリソースは豊富で、一度あなたが本当に必要なものを理解すれば、私はあなたに指摘できます。 FWIW、私はSQLの初心者がSQLとデータベースの設計上の質問に答えることを躊躇していることに注意します。私は、可能な医療問題の自己診断を行うためにGoogleを使用することに注意するのと同じ理由で、あなたはおそらく経験から学ぶでしょうが、あなたはまた、ほぼ確実に多くの不必要な路地に導かれます。

幸運を祈る!

関連する問題