w bazie danych SQLSQL: Wstaw dane z innej tabeli w tabeli, która zawiera klucze obce
Mam tabeli użytkowników
Id Name Age AddressId
----+------+------+-----------
Gdzie AddressId jest kluczem obcym do nazw tabel Adresy
Tabela Adresy:
Id Country State City ZipCode
----+---------+------+------+---------
to jest jeden-do-jednego związku: każdy użytkownik ma 1 adres i każdy adres ma jeden użytkownik
Mam nową tabelę o nazwie newusers
Id Name
----+------
Ma tylko identyfikator i nazwę.
co chcę zrobić to:
napisać skrypt, aby wstawić wszystkie rekordy z tabeli newusers w tabeli użytkowników.
- Chcę Wiek być domyślna 20 dla wszystkich nowych użytkowników
- I dla każdego nowego użytkownika włożona trzeba utworzyć nowy rekord Adres dla niego
- nowy rekord Adres będzie miał wszystkich jego wartości (kraj, miasto, stan, kod pocztowy) równym "abcd" z wyjątkiem identyfikatora, który będzie używany do ustawiania klucza obcego AddressId dla nowego użytkownika)
Jak mogę to zrobić?
Próbowałem następujące:
INSERT INTO Users(Name, Age)
Values((SELECT Name FROM NewUsers),20)
Ale nie wiem, jak utworzyć nowy rekord Adres dla każdego użytkownika włożonej i określić klucz obcy odpowiednio.
dziękuję za wszelką pomoc
jest "Adresses.Id' an" TOŻSAMOŚĆ "? –
aby utworzyć nowy adres po wstawieniu nowego 'User', powinieneś zdecydować się na" wyzwalacz ", który zostanie wykonany po wstawieniu nowego użytkownika. – Sajmon
@ypercube tak to jest Identity – Youssef