問題タブ [rollback]
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-server-2008 - 一時テーブルを作成し、読み取り、削除するトランザクションをコミットまたはロールバックする必要がありますか?
何百ものIDのリストに関連する情報を選択するには...巨大なselectステートメントを作成するのではなく、一時テーブルを作成し、それにIDを挿入し、テーブルと結合してIDに一致する行を選択し、一時を削除しますテーブル。したがって、これは基本的に読み取り操作であり、永続的なデータベース テーブルに対して永続的な変更は行われません。
終了時に一時テーブルが削除されるように、トランザクションでこれを行います。私の質問は...そのようなトランザクションをコミットするとどうなりますか?それをロールバックさせますか?
パフォーマンスに関して... DBエンジンは、トランザクションをコミットするのではなく、トランザクションをロールバックするためにさらに多くの作業を行う必要がありますか? 変更は一時テーブルに対してのみ行われるため、違いはありますか?
ここに関連する質問がありますが、一時テーブルを含む私の特定のケースには答えません:読み取りトランザクションをコミットまたはロールバックする必要がありますか?
編集(質問の明確化):
コミット/ロールバックの時点までのアドバイスを探していません。必ずお取引が必要です。エラーは発生しないと仮定します。一時テーブルを作成したと仮定し、tempdb への実際の「作業」書き込みが発生したことを知っていると仮定し、トランザクションで読み取り専用 (選択) 操作を実行し、一時テーブルで削除ステートメントを発行したと仮定します。結局のところ...コミットとロールバックのどちらが安価で、その理由は何ですか? 一時テーブルやその他の読み取り専用操作を含むこの特定のシナリオに基づいて、コミットとロールバックのその時点で db エンジンが実行できるその他の作業は何ですか?
c# - SqlTransactionオブジェクトにアクセスしてcatchブロックでロールバックできません
私は問題を抱えています、そして私が見つけたすべての記事や例はそれを気にしていないようです。
トランザクションでいくつかのデータベースアクションを実行したい。私がやりたいことは、ほとんどの例と非常に似ています。
しかし、問題は、がブロックSqlTransaction Trans内で宣言されていることです。tryしたがって、catch()ブロック内ではアクセスできません。ほとんどの例はブロックの前に実行Conn.Open()しますが、どちらも複数の例外をスローする可能性があるため、少し危険だと思います。Conn.BeginTransaction()try
私は間違っていますか、それともほとんどの人がこのリスクを無視していますか?例外が発生した場合にロールバックできるようにするための最良の解決策は何ですか?
mysql - 実行したばかりのmysqlステートメントを元に戻すにはどうすればよいですか?
最近実行されたmysqlクエリを元に戻すにはどうすればよいですか?
sql-server - 復元をロールバックできますか? SQLサーバー
誤って実行された復元をロールバックする方法はありますか?
(別のデータベースのバックアップ ファイルを使用) SQL Server
ありがとう...
asp.net-mvc-2 - MVC asp.net でのトランザクション
MVC 2 の asp.net でトランザクションがサポートされているかどうか疑問に思っていましたか? つまり、コミットとロールバック?
少し危険な db トランザクションがいくつかありますが、これはトランザクションで強化することをお勧めします。
システム トランザクションの名前空間を db 呼び出しのリポジトリに組み込むことはできますか?
ruby-on-rails - Rails - before_create から false を返すと、他のモデルへの変更が防止されます
before_create人々がコメントを投稿しすぎていないかどうかをチェックするフィルターがあります。
もしそうなら、私は彼らのアカウントにフラグを立てたいです。
before フィルターは false を返し、コメントの作成を停止します。問題は、これがユーザー モデルに加えた変更を元に戻す ROLLBACK をトリガーすることです。
これを達成するための正しいパターンは何ですか? 具体的には、オブジェクトが作成されるたびにチェックを実行し、チェックが失敗した場合に別のモデルを編集できるようにすることです。
database - データベースの変更のロールバック
私はワークフロー管理ツールを使用するチームで働いています。ユーザーがフロー中に加えられた変更を過去の特定の時点にロールバックできるようにする必要があるという課題が提示されました。確かに通行料はそれを処理できますが、これらの活動中に行われた可能性のある追加のデータベース呼び出しは手動でロールバックする必要があります.
課題は、複数の並列パスがあり、外部データベース呼び出しの順列が異なることです。これらの DB 呼び出しを追跡してロールバックするフレームワークまたは方法はありますか?
ありがとう、ジャスティン
mercurial - Mercurialにロールバックのレベルが1つしかないのはなぜですか?
ロールバックの制限とその使用に必要な注意を理解していますが、なぜロールバックのレベルが1つしかないのか疑問に思いました。
私の推測では、これは設計上の決定であり、複数のレベルのロールバックを処理するために以前の複数のトランザクション状態を保存する手間は、その価値よりも厄介です。
php - PHPスクリプトが異常終了し、MySQLトランザクションが失敗し、アプリ全体がしばらくロックされます
MySQLデータベースでAjaxと一緒にトランザクションを使用していますが、スクリプトのタイムアウトに問題があります。だから、ここに何が起こるかの要約があります:
- ページ上のAjaxスクリプトは、サーバーにリクエストを送信します。
- サーバーはリクエストを受信します。スクリプトはMySQLトランザクションを開始します。
- Ajaxスクリプトは2秒後にタイムアウトするように設定されています。タイムアウト; サーバーに要求を中止するように指示します。
- サーバースクリプトが停止します。トランザクションはハングしたままです。
- MySQLは、トランザクションがハングしたままになっていることに気付きます。想定どおりにロールバックしますが、テーブルが30分間ロックされ、Webサイトにアクセスできなかったために、多くの顧客が満足しなくなる前ではありません。
何をすべきか?
サーバースクリプトには、指定された2秒よりも少し時間がかかると思います。そこでignore_user_abort()、すべてのページを呼び出しregister_shutdown_function()、クライアントが実際に中止した場合は、トランザクションを明示的にロールバックするように呼び出しました。
これは良い計画ですか?代替手段はありますか?
git - git clone は同じ名前の既存のリポジトリを上書きしました
既存の git チェックアウトがあり、いくつかの変更を加えた後、同じリポジトリをチェックアウトすると、フォルダーが上書きされました。コミットされていない変更で古いリポジトリを取得する方法はありますか?
「 git reflog --all 」をチェックしましたが、最新のチェックアウトしか表示されませんでした。
編集: 問題を再現できません。だから私はどこかで間違いを犯したと思います