私はDB2を初めて使用しており、DB2データベースに単純なテーブルキューを実装しようとしています。私は が必要なのは、複数のクライアントがキューから同じ行を2回取得しないように、テーブルの行を一度に選択して削除することです。私は同様の質問を探していましたが、別のデータベースの解決策を説明したり、かなり複雑な解決策を記述したりしていました。一度に行を選択して削除するだけで済みます。キューファンクションのDB2で一度に選択して削除する方法
UPDATE:私はまさに私が必要なもののように見えた、このようなWeb DB2句で発見 - 削除から選択します。例: SELECT * OLDテーブルから
(example_id = 1の例からDELETE) 2つの一致要求が同じ結果を得ないか、同じ行を削除しても、この文がアトミックであるかどうかは疑問です。
私はこれについて考えていましたが、選択と削除の間でアプリケーションがクラッシュするとどうなるのだろうと思います。テーブルは永遠にロックされますか?または接続が失われたときにテーブルがすぐにロック解除されますか? – HPCS
@HPCS:テーブルの作成時に定義されたテーブルロックレベルによって異なります。たぶん行やページだけがロックされているでしょう。使用している言語に応じて、異常終了はデータベースロックの自動ROLLBACKをトリガーする必要があります。 –