問題タブ [sqltransaction]
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.
sql - T-SQL - Try-Catch とエラー処理 (トランザクション) の組み込み
Repeatable Read Isolation Level を使用してトランザクションに取り組んでいます。このトランザクションに、Try-Catch とエラー ハンドラーの両方の機能を組み込みたいと考えています。コードを実行すると、次のようなエラー メッセージが表示されます: Msg 102, Level 15, State 1, Line 18 Incorrect syntax near 'BEGIN'. メッセージ 102、レベル 15、状態 1、行 23 '@errnum' 付近の構文が正しくありません。
このトランザクションを正常に完了するにはどうすればよいですか? または、このトランザクションを記述する正しい方法は何ですか?
これは今の私の仕事です:
mysql - 更新のために行をロックし、MySQL で変数を使用してテーブルを更新する方法
店舗が受け取るすべての注文を格納する購入テーブルがあります。場合によっては、別の費用で商品を再注文する必要があります。販売取引を行うとき、購入日によって決定される FIFO (First In, First Our) システムを使用して、販売されたアイテムの総コストを決定できる必要があります。
これが私のテーブルの外観です
上記のデータを使用して、誰かが item_id = 1 の 40 ユニットを購入したい場合、コストは (10 X 1.00) + (20 X 0.90) + (10 X 0.80) = 36 のように計算されます。item_id = 1 のこのトランザクションの合計費用は $36 です。
しかし今、 availableQty
列を新しい使用可能な値で更新する必要があります。
列の値に基づいてavailableQty
、行 1 と 2 の列の値は 0 で availableQty
、同じ列の行 3 には 40 が残っている必要があります。
トランザクションのコストを計算するために、コスト計算を行うこのクエリを作成できました。
しかし、新しい totalAvailable 値で各行を更新するにはどうすればよいでしょうか?
したがって、最終的なレコードは次のようになる必要があります
だから私の質問はこれです
- UPDATE を正しく実行するには?
- このトランザクションがコミットされるまで他のトランザクションが値を変更できないように、クエリ クエリを使用して更新のために行をロックする方法。select と update の両方のクエリが同じトランザクション内にあることに注意してください。
- コストを計算するためのより良いアプローチはありますか?
値を更新するために次のクエリを試しました
-- これにより、この行で構文エラーが発生します@myQty := CASE WHEN @myQty > availableQty THEN @myQty - availableQty ELSE @myQty END
私もこのクエリを試しました
vb.net - トランザクション処理 VB.Net
2 つのクエリで DB にレコードを挿入するプログラムがあります。そこでトランザクションを処理しています。しかし、私の取引は機能していません。first statement を実行した後、プログラム レコードを閉じると、最初のテーブルが挿入され、2 番目のテーブルには挿入されません。
しかし、それは最初のテーブルからロールバックする必要があります。ここでの問題は何ですか。
database - トランザクションデータベースで「反復不可能な読み取り」を避ける必要があるのはなぜですか?
Read Uncommitted
ご存知のように、通常、トランザクション データベースには 、Read Committed
、Repeatable Read
およびの 4 種類の分離レベルがありSerializable
ます。
Repeatable Read
とSerializable
避けることができNonrepeatable Read
ます。
たとえば、Transaction_1 には 2 つの選択があり、Transaction_2 には 1 つの更新があり、更新は 2 つの選択の間に実行されます。なぜこれを避ける必要があるのでしょうか?
を回避しなければならないアプリケーションを誰が見つけることができますNonrepeatable Read
か?
買い物や乗り換えに関するアプリはありますか?
android - Android データベース トランザクション エラー処理
トランザクションを使用して一連のクエリを実行していて、クエリの 1 つが挿入/更新/削除に失敗した場合。何が起こるか?残りのクエリはデフォルトで引き続き実行されますか?
entity-framework - 構成された実行戦略 'SqlAzureExecutionStrategy' は、ユーザーが開始したトランザクションをサポートしていません
UnitOfWork パターンと共に Entity Framework の最新の v6 を使用しています。これは、過去数年間、サーバー上で問題ありませんでした。
Azure Hosting に移行して SQLAzure を使用したいので、アプリの移行を開始しました。しかし、私は多くの問題を抱えています。
まず、断続的にこのエラーが発生し続けました
サーバーから結果を受信中にトランスポート レベルのエラーが発生しました。
いくつかのグーグルの後、これは一般的であり、独自に実装する必要があるようですSqlAzureExecutionStrategy
-すべて問題ないようです。その後、開始されたトランザクションをサポートしていないことがわかります!
次に、このブログ投稿に出くわしました-正確な問題の概要を説明し、問題を修正する方法のサンプルコードを提供します(またはそう思いました)。
私は(私の知る限り)投稿を正確にフォローしました。dBconfiguration クラスのセットアップがあり、アプリの起動時に SetExecutionStrategy にヒットしています。
次に、上記で参照した「CustomSqlAzureExecutionStrategy」というカスタム クラスを作成し、以下に配置して、ShouldRetryOn メソッドをオーバーライドしました。
ただし、アプリを実行すると、最初と同じエラーが引き続き発生しますが、今回はカスタム クラスを指しているだけですか?
構成された実行戦略 'CustomSqlAzureExecutionStrategy' は、ユーザーが開始したトランザクションをサポートしていません。
ここで明らかなことを見逃しましたか?または何かを理解していませんか?どんな助けでも大歓迎です。
アップデート
通常... StackOverFlow ラバー ダッキング。私は実際にそれを正しく読んで、手動でSuspendExecutionStrategy
UnitOfWork に設定する必要があることを発見しました (Before BeginTransaction および Commit の後)。
だから私はこれを直前に持っています.BeginTransaction()
そしてこの直後.Commit()
これでアプリケーションを実行できるようになりましたが、まだ (まれに付け加えるかもしれませんが) 一時的なエラー メッセージが表示されますか?
サーバーから結果を受信中にトランスポート レベルのエラーが発生しました。
php - PHP PDO アクティブなトランザクションがありません
PDO クラスでクエリを実行しようとしたところ、次のエラー メッセージが表示"There is no active transaction"
されました。
これが私のコードです:
このエラーの原因は何ですか? このタイプの質問の以前の投稿を調査しましたが、解決策は見つかりませんでした。