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

外部キーの参照列リストと一致する主キーまたは候補キーが参照テーブルにありません

    外部キーは、列を別のテーブルの一意のキーに結合することで機能します。その一意のキーは、主キーであれ、その他の一意のインデックスであれ、何らかの形式の一意のインデックスとして定義する必要があります。

    現在、唯一の一意のインデックスは、ISBN, Titleの複合インデックスです。 これが主キーです。

    BookTitleが保持しているものと、その中のデータの関係に応じて、さまざまなオプションが用意されています。

    ISBNはBookTitleの各行で一意であると推測するのは危険です。これが当てはまると仮定して、主キーをISBNのみに変更し、BookCopyを変更して、タイトルの代わりにISBNを使用し、それに参加するようにします。

    主キーをISBN, Titleとして保持する必要がある場合 次に、ISBNをBookCopyとTitleに保存し、両方の列に外部キーを保存するか、BookTitle(Title)に個別のインデックスとして一意のインデックスを作成する必要があります。

    より一般的には、REFERENCESにある1つまたは複数の列を確認する必要があります 句は、親テーブル内の一意のインデックスと完全に一致します。この場合、Titleに一意のインデックスが1つもないため、失敗します。 一人で。



    1. Codeigniterで作成、更新、削除のクエリが成功したことを検出するにはどうすればよいですか?

    2. SQLServerでエラーメッセージ7325を修正する方法:「CLRタイプの列を公開するオブジェクトは分散クエリでは許可されていません」

    3. Node.jsでのPostgreSQLの複数行の更新

    4. MySQLで交差する代わりに