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

SQL Server:Kan ikke oprette relation

Den primære nøgle i Person-tabellen er formodentlig en identitet. Dette er et automatisk inkrementerende heltalsfelt.

Du skal lave fremmednøglen i adressetabellen af ​​typen int, ikke identitet. Den vil indeholde heltal, der svarer til personregistreringer, men du ønsker ikke, at fremmednøglen automatisk stiger. For hver post i den underordnede tabel (adresse) vil du indstille en specifik værdi for fremmednøglen, der angiver, hvilken overordnet post (Person) den tilhører.

Eksempel:

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

Dette vil indsætte den nye personpost og feltet personid udfyldes automatisk, fordi det er et IDENTITY-felt.

For at indsætte en adresse fra John Smith skal du kende hans personid . For eksempel:

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

Altså i person tabellen genereres personid automatisk, men i address tabel angiver du den værdi, der matcher en eksisterende person. Det er hele pointen med en fremmednøgle.

Uden flere oplysninger om dit skema er det svært at gætte problemet.



  1. Hvad er der galt med min CASE?

  2. Brug af merge..output til at få kortlægning mellem source.id og target.id

  3. Sådan gemmer du Emoji-karakterer i MySQL-databasen

  4. Hvordan får jeg psycopg2-logning af forespørgselsudførelsestid?