問題タブ [savepoints]
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.
oracle - Oracle で新しいトランザクションを開始するためにセーブポイントを代用できますか?
現在、一連のレコードを挿入するために使用しているプロセスは次のようなものです。
(「一連のレコード」とは、個人のレコードと住所、電話番号、またはその他の結合されたテーブルのようなものを意味することに注意してください)。
- 取引を開始します。
- 関連する一連のレコードを挿入します。
- すべてが成功した場合はコミットし、そうでない場合はロールバックします。
- 次の一連のレコードについては、手順 1 に戻ります。
このようなことをもっとすべきでしょうか?
- スクリプトの先頭でトランザクションを開始します
- レコードのセットごとにセーブ ポイントを開始します。
- 関連レコードのセットを挿入します。
- エラーが発生した場合はセーブポイントにロールバックし、すべてが成功した場合は続行します。
- スクリプトの先頭でトランザクションをコミットします。
ORA-01555 でいくつかの問題が発生し、Ask Tom の記事 (この記事など) をいくつか読んだ後、2 番目のプロセスを試してみることを考えています。もちろん、Tom が指摘するように、新しいトランザクションの開始は、ビジネス ニーズによって定義されるべきものです。2 番目のプロセスは試してみる価値がありますか、それとも悪い考えですか?
python - Python sqlite3 でセーブポイントを使用する
Python 2.6に組み込まれたsqlite3モジュールでセーブポイントを使用しようとしています。セーブポイントを解放またはロールバックしようとするたびに、常にOperationalError: no such savepoint
. 私は何が欠けていますか?
このコードから:
nhibernate - NHibernate のネストされたトランザクション動作の実現
NHibernate のトランザクション制御と FlushMode オプションを使用して、ある種のネストされたトランザクション動作を実現しようとしていますが、読みすぎて少し混乱してしまったので、以下にリストする事実についての確認は非常に役立ちます。
私が望むのは、小さなトランザクションに分割される 1 つの大きなトランザクションを開くことです。次のシナリオを想像してください。
- TX1 は TX を開き、個人のレコードを挿入します。
- TX2 は TX を開き、この Person の名前を P2 に更新します。
- TX2 コミット;
- TX3 は TX を開き、この人の名前を P3 に更新します。
- TX3 ロールバック。
- TX1 はコミットします。
NH が INSERT と TX2 UPDATE をデータベースに送信し、ロールバックされた TX3 を無視することを望みます。
FlushMode = Never を使用して、適切な Begins/Commits/Rollbacks が要求された後にのみセッションをフラッシュしようとしましたが、コミットやロールバックとは関係なく、NH は常にオブジェクトの最終状態でデータベースを更新します。それは正常ですか?FlushMode = Never で作業する場合、NH は本当にトランザクション制御を無視しますか?
FlushMode = Commit を使用してネストされたトランザクションを開くことも試みましたが、ADO.NET のため、ネストされたトランザクションは実際には常に同じトランザクションであることがわかりました。
「オールオアナッシング」の動作を達成しようとしているわけではないことに注意してください。私はセーブポイントの働き方にもっと目を向けています。NHでそれを行う方法(セーブポイント)はありますか?
前もって感謝します。
フィリペ
c# - Linq のセーブポイントを SQL に設定し、"NO" ExecuteCommand を使用するにはどうすればよいですか?
動作しますが、ExecuteCommand でのみです。セーブポイントで何が起こるか分からないので関数を使いたい!
mysql - ActiveRecord、MySQL、およびネストされたトランザクション-動作は何ですか?
Railsはセーブポイントを使用してMySQLでネストされたトランザクションを実現します。私の理解では、これのセマンティクスは、アトミックデータの変更に関して、実際のネストされたトランザクションと同じです。
- これは本当ですか?
- コード内の任意の時間に「保存」を呼び出すのはどうですか?トランザクションは、ブロックが終了するまで開いたままですよね?ネストされたトランザクション/セーブポイントを使用する場合の動作に違いはありますか?
- 他に知っておくべきことはありますか?
- [意図的に炎上戦争を扇動する]PostgresSQLに切り替える必要がありますか?
hibernate - Hibernate を使用したセーブポイント
問題は、一時ベースで休止状態で保存または更新を使用していることです...
今、私が最終的に更新を開始すると、DBに永久に保存されます。それ以外の場合はロールバックします..
休止状態のベースを使用してセーブポイントを作成する方法は春です。
お気に入り
保存または更新する前に、接続にセーブポイントを追加したいと思います。
どんな助けでも感謝します..
前もって感謝します。
.net - Entity Framework と SQL Server のセーブポイント
Nested Transactions について別の質問をしましたが、質問への回答は、質問が不十分であることに気付くのに十分な情報を提供してくれました。そこで、より良い質問があります。
Entity Framework 4.0 に基づいて構築された DAL を使用して SQL Server セーブポイント (リンク 1、リンク 2 )を効果的に実装するにはどうすればよいですか?
次のコードを記述して、SQL Server の SAVEPOINTS が機能するように動作させたいと思います。
これに似ていること、またはEF4でうまく機能する何か他のことを行う方法はありますか? (カスタムの自己追跡 POCO エンティティを使用します)
postgresql - postgreSQLで例外後にトランザクションを再試行する方法
コードのさまざまな部分で、例外の後にトランザクションを再試行する必要があります。しかし、私はそれを行う方法を理解することはできません。これが私のテスト関数です:
sql - トランザクションからセーブポイントへのsqliteの移行
私のSQLite
ベースのアプリケーションは現在、ロールバックを可能にするためとパフォーマンスを向上させるための両方でトランザクションを使用しています。すべてのトランザクションをセーブポイントに置き換えることを検討しています。その理由は、アプリケーションがマルチスレッドであり(はい、sqlite
スレッドセーフになるように構成されている)、場合によっては、トランザクションが2つのスレッドによって同時に(同じデータベース上で)開始される可能性があるためです。
- それをしない理由はありますか?
- 知っておく必要のある落とし穴はありますか?
BEGIN
、、をCOMMIT
、、に置き換えるだけですか?ROLLBACK
SAVEPOINT xyz
RELEASE SAVEPOINT xyz
ROLLBACK TO SAVEPOINT xyz
django - XeroundでDjango1.4を使用するにはどうすればよいですか?
Xeroundのリリースノートによると、セーブポイントはサポートされておらず、Django1.4でこれのサポートをオフにする方法がわかりません。誰かがこれを達成する方法を知っていますか?