私はRDBMSの「外部キー制約を強制する」の目的を知っています。しかし、それが "いいえ"に設定されているときに何か利点はありますか?Sql Server:「外部キー制約を強制する」が「いいえ」に設定されていると、どのような利点がありますか?
答えて
通常の製造では、この設定はとなるべくをNO
に設定する必要があります。
しかし、あなたがデータベースを開発しているときや、データベースを再構築しているとき、大量の大量のデータを「サニタイズ」(クリーンアップ)する必要がある場合、外部キー制約をオフにして、「有効でない」データをテーブルにロードすることができます。もちろん、私が言ったように、あなたはその設定を長時間オフにしておかないといけません。データをクリーンアップし、FK制約に違反している行を削除するか、値を更新してください親行に一致するようにします。
「通常の」生産モードでは、この設定は決してNO
であってはいけませんが、特定のタスクでは、より簡単に作業を進めるのに役立ちます。慎重にそれを使用して、できるだけ早くFK制約をオンに戻してください!
ご連絡ありがとうございますが、たとえば、すべての定義済みのデータを説明するために、データを列に入力する状況があります。有効なデータが1,2,3の場合、それらのすべてを言うために-1を記入します。このような状況では、図の「外部キー制約の強制」をNOに設定する必要があります。右?それで本当に関係を作る必要がありますか? – odiseh
@odiseh:いいえ、あなたのケースでは、それはまったく有用な目的を果たしていないので、外部キーを完全に削除する方が良いでしょう。代わりに、CHECK制約を作成してデータ値を検証することができます。 – sqlvogel
+1のように言ってください。私が契約しているいくつかの企業では、この設定が常に乱用されています。一貫して問題につながる。存在するはずの外部キーがなくて追加したいときに中間ステップとして使用することがあると付け加えます。時には、すべての参照元アプリケーションが正しい順序で操作を実行しているとは確信していません。これにより、関係をすぐに定義したり、問題のアプリケーションをテストしたり、コードを検索したりできます。 –
私が知る限り、毎日の使用ではありません。私が外来キーをしばらくの間強制していない時は、データに問題があり、それを修正することが関係チェックによって犠牲にされた時です。
一括操作中に、パフォーマンスを向上させるために制約チェックが一時的に無視されます。
- 1. SQL Serverの:制約と外部キー
- 2. 外部キーの制約がない「キー」とは何ですか?
- 3. SQL Serverで外部キー制約を削除するにはどうすればよいですか?
- 4. Laravelは私が既に作成外部キー制約を持つテーブルを持っている外部キー制約
- 5. SQLの外部キー制約
- 6. 外部キーの関係を追加しようとすると、mysqlの外部キーが制約されます
- 7. 外部キー制約が守られていません
- 8. SQL Noob。 "外部キー制約が正しく形成されていません"
- 9. SQL外部キー制約でリレーションシップが許可されていません
- 10. SQL外部キー、外部キー制約を設定できません。
- 11. 外部キー制約がエラー
- 12. SQL Serverの外部キー制約が参照する無効な表
- 13. 外部キー制約について混乱しています
- 14. モルフォアには、mongodbのカーソルと外部キーと制約がありますか?
- 15. 削除と外部キー制約SQL
- 16. 外部キー制約が正しくありません - Laravel
- 17. 外部キーによって同じ外部キーが参照される強制的な行
- 18. コンポジットキーで外部キー制約が正しく形成されていません
- 19. Cakephp 3.3で外部キー制約を設定するには?
- 20. 外部キー制約が誤っ(MariaDBに)形成されて
- 21. 外部キー制約
- 22. 外部キー制約が間違って形成されているmysql
- 23. Web2py 'Unique'制約がfalseに設定された後でも強制的に適用されています
- 24. pg_dumpからテーブル上の外部キー制約を強制する--exclude-table-data
- 25. 外部キー制約が間違って
- 26. SQLite3は外部キー制約をサポートしていませんか?
- 27. VBAソルバーの制約が設定されていないエラー
- 28. SQL Serverのテーブルに既にあるデータのプライマリ/外部キー制約を再確認するにはどうすればよいですか?
- 29. SQLエラーの外部キー制約
- 30. 外部キー制約が正しく形成されている[同じテーブル]
2つのテーブルに同じ2つの主キーがあり、外部キー関係を作成する必要がある場合は、「外部キー制約を強制する」を「いいえ」に設定する必要があります。これはかなり混乱しているので、私は下のYouTubeのURLを与えている、あなたはこのビデオの最後の後に明らかになります。 https://www.youtube.com/watch?v=H7uGGg1BQ2Y –