データベース間の外部キー制約のナビゲート
リレーショナル データベース管理では、多くの場合、異なるデータベース間でテーブルをリンクする必要があります。 ただし、別のデータベース内のテーブル間に外部キー制約を直接実装することは通常サポートされていないため、エラーが発生します。
このようなシナリオでデータの整合性を維持するには、トリガーが実行可能なソリューションを提供します。 トリガーを使用すると、データの一貫性をプロアクティブにチェックすることで参照整合性を強制できます。
効果的な戦略の 1 つは、子データベース テーブルに挿入トリガーまたは更新トリガーを作成することです。このトリガーは、親データベースの主キー テーブル内の外部キー値の存在を検証します。外部キー値が見つからない場合、トリガーは挿入/更新操作を拒否するか、不一致を適切に処理します。
以下は、子データベース内のテーブル (MyTable) への挿入中に参照整合性を維持するように設計されたトリガーの例です。
<code class="language-sql">CREATE TRIGGER dbo.MyTableTrigger ON dbo.MyTable AFTER INSERT, UPDATE AS BEGIN IF NOT EXISTS (SELECT PK FROM OtherDB.dbo.TableName WHERE PK IN (SELECT FK FROM INSERTED)) BEGIN -- Implement error handling here ROLLBACK TRANSACTION END END</code>
このトリガーは、挿入/更新された行の外部キー (FK) が、OtherDB データベースにある TableName テーブルの主キー (PK) と一致することを確認します。 不一致があるとロールバックがトリガーされ、カスタム エラー管理が可能になります。
トリガーは実用的なソリューションを提供しますが、データベース間の参照整合性を管理するための理想的な方法ではありません。 最適なアプローチには、データ管理を簡素化し、制約を効率的に適用するために、関連するテーブルを 1 つのデータベース内に統合することが含まれます。
以上がデータベース間の外部キー関係を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。