sql >> Database >  >> RDS >> Sqlserver

SQL Server:kan geen relatie maken

De primaire sleutel in de tabel Persoon is vermoedelijk een identiteit. Dit is een automatisch oplopend geheeltallig veld.

U moet de externe sleutel in de adrestabel van het type int maken, niet de identiteit. Het bevat gehele getallen die overeenkomen met persoonsrecords, maar u wilt niet dat de externe sleutel automatisch wordt verhoogd. Voor elk record in de onderliggende tabel (adres) stelt u een specifieke waarde in voor de refererende sleutel die aangeeft bij welk bovenliggend record (Persoon) het hoort.

Voorbeeld:

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

Dit zal het nieuwe persoonsrecord en het veld personid invoegen wordt automatisch ingevuld omdat het een IDENTITY-veld is.

Om nu een adres van John Smith in te voegen, moet je zijn personid weten . Bijvoorbeeld:

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

Dus in de person tabel wordt de personid automatisch gegenereerd, maar in het address tabel geeft u de waarde op die overeenkomt met een bestaande persoon. Dat is het hele punt van een externe sleutel.

Zonder meer informatie over je schema is het moeilijk om het probleem te raden.



  1. Knooppunt js (getConnection)

  2. PostgreSQL 9.3:dynamische draaitabel

  3. Haal mysqldump op om gegevens te dumpen die geschikt zijn voor psql-invoer (escaped enkele aanhalingstekens)

  4. Autoincrement handmatig een kolom MySQL