問題タブ [select-for-update]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 最も関連性の高いものをフィルタリングして 1 つのクエリで作成する方法は?
競合状態を回避するために、最適な関連オブジェクトを選択し、新しいオブジェクトを 1 つのクエリで保存したいと考えています。出来ますか?select_for_update はこの問題を解決しますか?
mysql - SELECT FOR UPDATE はトランザクションなしでは意味がなく、トランザクションはそれ自体でロックを使用するため、SELECT FOR UPDATE のユースケースは何ですか?
ここから: https://stackoverflow.com/a/27868682/10894456
SELECT ... FOR UPDATE は、トランザクションが完了する (コミットまたはロールバックされる) まで、書き込み (排他的) ロックでレコードをロックします。
レコードを選択し、更新するまで変更されないようにするには、トランザクションを開始し、SELECT ... FOR UPDATE を使用してレコードを選択し、簡単な処理を行い、レコードを更新してから、トランザクションをコミット (またはロールバック) します。 .
ここで https://stackoverflow.com/a/5411366/10894456
トランザクション外の FOR UPDATE は無意味であることに注意してください
したがって、INSERT FOR UPDATE はトランザクションなしでは意味がなく、トランザクションはそれ自体でロックを使用するため、INSERT FOR UPDATE のユースケースは何ですか? 私の唯一の推測: SELECT ... FOR UPDATE は、トランザクションの分離レベルが低い場合 (read_uncommit など) にのみ意味がありますが、よくわかりません。助けてください
mysql - 存在しない行に対する SELECT … FOR UPDATE
「存在しない行を更新するために...を選択する」ときのロックに興味があります。現在、テーブル「test02」のデータは次のとおりです。
ID
1
3
8
15
20
列 ID は主キーです。
私が実行するとき:
session1: トランザクションを開始します。select * from test02 where id = 7 for update;
次に、別のセッションを開き、フェローとして実行します。
session2: トランザクションを開始します。select * from test02 where id = 7 for update;
予想通り、session2 はギャップ ロック (3, 8) を待機します。ただし、2 つのセッションは正常に実行されます。session2 が待機しない理由を説明できる人はいますか?
しかし、セッション 3 で次の SQL を実行すると、test02(id) 値 (7) に挿入されます。セッションがブロックされている場合、セッション 1 のギャップ ロックが使用されていることを意味します。しかし、session2が正常に実行できる理由がわかりません。
mysql バージョン 5.7 と 5.8 はどちらも同じ結果を示します。
oracle - ORA-20762: エラー-01002: ライン・プロシージャで順序が正しくないフェッチが発生しました
スケジューラ ジョブ (手順) があります。このスケジューラ ジョブは問題なく実行されるはずです。ロジックに従って動作します。このプロシージャには入力パラメータがありません。データをフェッチする3〜4個のカーソルがあり、同じテーブル条件でカーソルが機能するように更新します。問題は... シナリオを教えてください。プロシージャ内に「サンプル」というテーブルがあるとします。カーソルを使用してレコードを取得し、「サンプル」テーブルの値を更新するだけで、次にコミットしてカーソルのループを終了します。plsql 開発者 IDE を使用しています。select val1,val2 from sample where val3='A' for update;
ジョブ、つまりプロシージャの実行と同時にコミットボタンをクリックせずにplsql開発者ideを入力して、カーソルでフェッチされた同じレコードとしてテーブル「サンプル」からデータにアクセスしようとしています
。ORA-20762: Error-01002: fetch out of sequence encountered on line procedure
エラーが指すエラーがスローされますfetch cursor into ..
。'FOR UPDATE NOWAIT'
group-by - Axapta: Group By 句の後の「The record has never been selected」エラー
私は Ax 2009 の初心者です。別のテーブル B に参加した後、テーブル A のレコードのフィールドを更新したいと考えています。その ID でグループ化を適用したいと考えています。
次のコードを実行しようとしましたが、「テーブル A のレコードを編集できません。レコードが選択されていません」というエラーがスローされます。
tableA で Group By 句を使用したことが原因だと思いますが、それを削除すると、if チェックで tableA.Dimension[5] が空になります。
誰か助けてください。ありがとうございました。