Khóa chính trong bảng Person có lẽ là một danh tính. Đây là trường số nguyên tự động tăng dần.
Bạn cần tạo khóa ngoại trong bảng địa chỉ kiểu int, không phải danh tính. Nó sẽ chứa các số nguyên tương ứng với bản ghi Người, nhưng bạn không muốn khóa ngoại tự động tăng. Đối với mỗi bản ghi trong bảng con (địa chỉ), bạn sẽ đặt một giá trị cụ thể cho khóa ngoại cho biết nó thuộc về bản ghi mẹ nào (Người).
Ví dụ:
INSERT person (firstname, lastname) VALUES ('John', 'Smith')
Thao tác này sẽ chèn bản ghi người mới và trường personid
sẽ được điền tự động vì nó là trường IDENTITY.
Bây giờ để chèn một địa chỉ từ John Smith, bạn cần biết personid
của anh ấy . Ví dụ:
-- Say, for example, personid of John Smith is 55
INSERT address (personid, street, city) VALUES (55, 'High Street', 'London')
Vì vậy, trong person
bảng nhân cách được tạo tự động nhưng ở địa chỉ address
bảng bạn chỉ định giá trị phù hợp với một người hiện có. Đó là toàn bộ điểm của khóa ngoại.
Nếu không có thêm thông tin về lược đồ của bạn, thật khó để đoán vấn đề.