Primární klíč v tabulce Osoba je pravděpodobně identita. Toto je automaticky se zvyšující celočíselné pole.
Musíte vytvořit cizí klíč v tabulce adres typu int, nikoli identity. Bude obsahovat celá čísla, která odpovídají záznamům osob, ale nechcete, aby se cizí klíč automaticky zvyšoval. Pro každý záznam v podřízené tabulce (adrese) nastavíte konkrétní hodnotu cizího klíče označující, ke kterému nadřazenému záznamu (osobě) patří.
Příklad:
INSERT person (firstname, lastname) VALUES ('John', 'Smith')
Tím se vloží nový záznam osoby a pole personid
bude vyplněno automaticky, protože se jedná o pole IDENTITY.
Nyní, abyste mohli vložit adresu od Johna Smitha, musíte znát jeho personid
. Například:
-- Say, for example, personid of John Smith is 55
INSERT address (personid, street, city) VALUES (55, 'High Street', 'London')
Tedy v person
personid je generován automaticky, ale v address
tabulky zadáte hodnotu, která odpovídá existující osobě. To je celý smysl cizího klíče.
Bez dalších informací o vašem schématu je těžké uhodnout problém.