sql >> Database teknologi >  >> RDS >> Sqlserver

Der er ingen primære eller kandidatnøgler i den refererede tabel, der matcher referencekolonnelisten i den fremmede nøgle

Fremmednøgler fungerer ved at forbinde en kolonne med en unik nøgle i en anden tabel, og den unikke nøgle skal defineres som en form for unikt indeks, det være sig den primære nøgle eller et andet unikt indeks.

I øjeblikket er det eneste unikke indeks du har et sammensat indeks på ISBN, Title som er din primære nøgle.

Der er en række muligheder åbne for dig, afhængigt af nøjagtigt hvad BookTitle har og forholdet mellem dataene i den.

Jeg vil risikere at gætte på, at ISBN er unikt for hver række i BookTitle. Hvis det antages, at dette er tilfældet, skal du ændre din primære nøgle til kun at være på ISBN, og ændre BookCopy, så du i stedet for Titel har ISBN og tilslutter dig det.

Hvis du har brug for at beholde din primære nøgle som ISBN, Title så skal du enten gemme ISBN i BookCopy samt Title og fremmednøgle på begge kolonner, ELLER du skal oprette et unikt indeks på BookTitle(Title) som et særskilt indeks.

Mere generelt skal du sørge for, at den eller de kolonner, du har i dine REFERENCES klausul matcher nøjagtigt et unikt indeks i den overordnede tabel:i dit tilfælde mislykkes det, fordi du ikke har et enkelt unikt indeks på Title alene.



  1. 15 Grundlæggende MySQL-interviewspørgsmål til databaseadministratorer

  2. Forbinder Android med MS SQL SERVER 2008

  3. Hvornår vælger du opdateringslås og oplåsning?

  4. Hvis du bruger indekserede visninger og FLET, så læs venligst dette!