sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server:Det går inte att skapa relation

Den primära nyckeln i tabellen Person är förmodligen en identitet. Detta är ett automatiskt ökande heltalsfält.

Du måste göra den främmande nyckeln i adresstabellen av typen int, inte identitet. Den kommer att innehålla heltal som motsvarar personposter, men du vill inte att den främmande nyckeln ska öka automatiskt. För varje post i den underordnade tabellen (adressen) kommer du att ange ett specifikt värde för den främmande nyckeln som anger vilken överordnad post (Person) den tillhör.

Exempel:

INSERT person (firstname, lastname) VALUES ('John', 'Smith')

Detta kommer att infoga den nya personposten och fältet personid kommer att fyllas i automatiskt eftersom det är ett IDENTITY-fält.

För att nu infoga en adress från John Smith måste du känna till hans personid . Till exempel:

-- Say, for example, personid of John Smith is 55
INSERT address (personid, street, city) VALUES (55, 'High Street', 'London')

Så i person tabell genereras personid automatiskt men i address tabell anger du värdet som matchar en befintlig person. Det är hela poängen med en främmande nyckel.

Utan mer information om ditt schema är det svårt att gissa problemet.



  1. MySQL-testrättigheter

  2. Java Förberedda uttalanden för PostgreSQL

  3. Säkert sätt att skicka e-post via PHP till många användare

  4. Hur exporterar och importerar man mysql-databas med dess data med hjälp av php-skript?