sql >> データベース >  >> RDS >> Sqlserver

主キーなしで外部キーを作成する

    とても良い質問です。参照制約が候補キー以外のものを参照してはならない根本的な理由はありません。そのような制約には、包含依存関係という名前さえあります。外部キーは、制約のターゲットがたまたま候補キーである包含依存関係の一種です。

    残念ながら、SQL は一般的に包含依存関係や参照制約に対しても適切なサポートを提供していません。 SQL は、いわゆる FOREIGN KEY 制約を、UNIQUE または PRIMARY KEY 制約の列の参照に制限しています (必ずしも候補キーではありません)。

    したがって、あなたが直面したのは、実際には SQL の疑わしい制限です。あなたが何か非常に悪いことをしているという意味ではありません。



    1. MySQLUPDATEは列にデータを追加します

    2. SQL Serverでセミコロンを使用する必要があるのはいつですか?

    3. SSDTを使用して、別のデータベースのオブジェクトを参照するビューがある場合、SQL71561エラーを解決するにはどうすればよいですか?

    4. Psql出力で結果セットの装飾を非表示にする方法