sql >> Databasteknik >  >> RDS >> Sqlserver

Det finns inga primära eller kandidatnycklar i den refererade tabellen som matchar referenskolumnlistan i den främmande nyckeln

Främmande nycklar fungerar genom att sammanfoga en kolumn med en unik nyckel i en annan tabell, och den unika nyckeln måste definieras som någon form av unikt index, vare sig det är primärnyckeln eller något annat unikt index.

För tillfället är det enda unika index du har ett sammansatt på ISBN, Title som är din primära nyckel.

Det finns ett antal alternativ tillgängliga för dig, beroende på exakt vad BookTitle har och förhållandet mellan data i den.

Jag skulle kunna gissa att ISBN är unikt för varje rad i BookTitle. Förutsatt att detta är fallet, ändra sedan din primärnyckel till att endast vara på ISBN och ändra BookCopy så att du istället för Titel har ISBN och går med på det.

Om du behöver behålla din primärnyckel som ISBN, Title sedan måste du antingen lagra ISBN i BookCopy såväl som titeln och främmande nyckel i båda kolumnerna, ELLER måste du skapa ett unikt index på BookTitle(Title) som ett distinkt index.

Mer generellt måste du se till att kolumnen eller kolumnerna du har i dina REFERENCES klausul matchar exakt ett unikt index i den överordnade tabellen:i ditt fall misslyckas det eftersom du inte har ett enda unikt index på Title ensam.



  1. Kan inte ansluta till MySQL 4.1+ med gammal autentisering

  2. Skapa en databas i molnwebbplatser

  3. Konfigurera och konfigurera SQL Server-replikering

  4. Hur anropar man Oracle-funktion eller lagrad procedur med fjäderbeständighet?