SQL: вставка данных из другой таблицы в таблицу, содержащую внешние ключи

В БАЗЕ ДАННЫХ SQL

У меня есть таблица пользователей

 Id   Name   Age    AddressId
----+------+------+-----------

Где AddressId — внешний ключ к таблице имен адресов

Таблица адресов:

 Id   Country   State  City   ZipCode
----+---------+------+------+---------

Это отношение ОДИН-К-ОДНОМУ: каждый Пользователь имеет 1 адрес, и каждый адрес имеет одного пользователя

У меня есть новая таблица с именем NEWUsers

Id   Name  
----+------

У нее есть только идентификатор и имя.

Я хочу сделать следующее:

Написать сценарий для вставки всех записей из таблицы NEWUSers в таблицу пользователей.

  • Я хочу, чтобы Возраст по умолчанию был равен 20 для всех новых пользователей
  • И для каждого добавленного нового пользователя мне нужно создать для него новую запись адреса
  • новая запись адреса будет иметь все свои значения (страна, город , состояние, почтовый индекс) равно "abcd", за исключением идентификатора, который будет использоваться для установки внешнего ключа AddressId для нового пользователя)

Как я могу это сделать?

Я пробовал следующее:

INSERT INTO Users(Name, Age)
Values((SELECT Name FROM NewUsers),20)

Но я не знаю, как создать новую запись адреса для каждого вставленного пользователя и соответственно указать внешний ключ.

Большое спасибо за любую помощь

7
задан Youssef 24 May 2012 в 16:14
поделиться