Trong một DATABASE SQLSQL: Chèn dữ liệu từ bảng khác trong một bảng có chứa các phím nước ngoài
Tôi có một người sử dụng Bảng
Id Name Age AddressId
----+------+------+-----------
đâu AddressID là khóa ngoại đến một bảng tên Địa chỉ
Các Addresses Bảng:
Id Country State City ZipCode
----+---------+------+------+---------
Đây là một one-to-ONE Mối quan hệ: Mỗi người dùng có 1 địa chỉ và mỗi địa chỉ có một người sử dụng
Tôi có một bảng mới có tên NEWUsers
Id Name
----+------
Nó chỉ có Id và Tên.
Điều tôi muốn làm là:
Viết kịch bản để chèn tất cả các bản ghi Từ bảng NEWUSers vào bảng người dùng.
- Tôi muốn The Age được mặc định 20 cho tất cả người dùng mới
- Và đối với mỗi người dùng mới đưa tôi cần phải tạo ra một kỷ lục Địa chỉ mới cho anh ta
- kỷ lục Địa chỉ mới sẽ có tất cả các giá trị của nó (đất nước, thành phố, tiểu bang, mã bưu điện) tương đương với "abcd" ngoại trừ Id mà sẽ được sử dụng để thiết lập các AddressID chính nước ngoài cho người dùng mới)
làm thế nào tôi có thể làm điều đó?
tôi thử như sau:
INSERT INTO Users(Name, Age)
Values((SELECT Name FROM NewUsers),20)
Nhưng tôi không biết làm thế nào để tạo ra một kỷ lục Địa chỉ mới cho mỗi người dùng chèn vào và xác định chính nước ngoài cho phù hợp.
Cảm ơn rất nhiều sự giúp đỡ nào
là 'Adresses.Id' là' IDENTITY'? –
để tạo địa chỉ mới khi bạn chèn mới 'Người dùng', bạn nên quyết định tạo' trình kích hoạt' sẽ được thực hiện sau khi bạn chèn Người dùng mới. – Sajmon
@ypercube yes it is Identity – Youssef