私はウェブアプリケーションを実行しており、新しい計算でテーブルの1つを更新するために別のアプリケーションでSQL DBにアクセスしたいと思います。更新中にユーザーに何か気付くでしょうか?私が更新を行うと同時にアクセスする場合、または自動ロックがある場合、私はエラーが発生しますか? tia更新ジョブ中にSQLテーブルを「ロック」する必要はありますか?
答えて
一般に、更新を実行する間に行がロックされ、更新が完了するまでこれらの行を使用する可能性のあるSQLクエリが「ハング」し、正しいデータが返されます。
これにはいくつかの例外がありますが、長期間にわたってデータがロックされるような長期的な更新を行わない限り、一般的には心配しません。
もしあなたのRDBMSが良いものなら、それはあなたのためにそれを処理する必要があります。
"autocommit"がオフになっていることを確認し、更新が完了したらコミットする必要があるかもしれません。
自動ロックはありません。あなたがしたいことが迅速であれば、複数のアクセスの可能性が本当にであるので、自動ロックする必要はありません。
しかし、長い更新を予定している場合は、更新を行っている最中にメンテナンスページをフロントページに配置することを真剣に考えてください。
どれほど幸運であるかに応じて、更新前または更新後に値が表示されます。通常、これは問題ではないので、ロックの問題をすべて無視することができます。彼らはテーブル自体をロックしようとしない限り、エラーは発生しません。
これは、使用しているDBMSと使用している分離レベルによって異なります。 See here for what PostgreSQL documentation has to say.基本的には、さまざまな方法でアップデートを処理できます。一方では、更新が部分的にコミットされた更新から矛盾したデータを取得する可能性があるのと同時に発生する読み取りもあります。もう一方の側では、トランザクションは完全に同期しています。ほとんどのDBMSは、効率の理由から、間に何かをする傾向があります。
トランザクションの能力を持つRDBMSを使用する場合は、ロックする必要はありません。これはあなたのために行われます。そうでない場合は、使用する行とテーブルをロックする必要があります。
ほとんどのRDBMSシステムにはトランザクションのサポートがありますが、これは心配するものではありません。
- 1. SQL Server - 1列の更新、ロックが必要ですか?
- 2. 更新中にOPCACHEをフラッシュする必要がありますか?
- 3. 中間テーブルをクラスタ化する必要がありますか?
- 4. MS ACCESS更新中にテーブルをロックする、ブロックする
- 5. dlopenの前にロックする必要がありますか?
- 6. Jenkinsのプラグインを更新した後、ジョブを再設定する必要はありますか?
- 7. ドロップダウンリストからクエリを更新する必要があります
- 8. スレッドJFrameはJTextPaneを更新する必要があります
- 9. テーブルの列を更新する必要があります[email protected]
- 10. T-SQL更新レコードは、JOINが必要な条件を追加する必要があります。
- 11. SQLクエリで現在の時刻を更新する必要があります
- 12. ビューはいつ更新する必要があります
- 13. インストール中にSQLスクリプトを実行する必要がありますか?
- 14. SQLジョブのキューはありますか?
- 15. テンプレートを更新するには、すべての登録を更新する必要がありますか?
- 16. Grails GORMはDBテーブルの更新時にテーブルをロックします
- 17. フラッシュクッキーからCookieを更新する必要がありますが、ページを更新する必要はありません
- 18. APIまたはコンシューマがビューフラグを更新する必要がありますか?
- 19. 依存するプライベートメソッドをロックする必要はありますか?
- 20. リポジトリまたはビジネスレイヤですべてのテーブルを更新する必要がありますか?
- 21. 変更する前にモデルを更新する必要があります
- 22. Firemonkeyアプリ。データを更新する必要があります
- 23. angularjs $ uimodalを更新する必要があります
- 24. TinyMCE - ページを更新する必要があります
- 25. 手動でページを更新する必要があります
- 26. モデル内のパラメータを更新する必要があります
- 27. ALTER TYPEオブジェクトを更新する必要があります
- 28. バディプレスのトップバーを更新する必要があります
- 29. 更新する前にAzure SQLデータベースでアクティブなジオレプリケーションを無効にする必要がありますか
- 30. 変更する前に2つのSQLフィールドを更新する必要があります
-1、私はもっと持っていたがっています。これはひどいアドバイスです。あなたの見積もりでは、何かの確率が低いので、故意にコードにバグを記述することはできません。このようなエッジ、レース、その他のあいまいなコーディングエラーは、時間がかかります。 **最初に正しく実行してください**。 – Cruachan