Вставка с использованием подзапроса как целевого объекта

Подзапрос можно использовать вместо имени таблицы в предложении INTO инструкции INSERT.

4-7-5772307

Список SELECT этого подзапроса должен иметь такое же количество столбцов, как и список столбцов предложения VALUES. Чтобы инструкция INSERT успешно функционировала, должны соблюдаться все правила, действующие в отношении столбцов базовой таблицы. Например, не допускается вводить дубликат идентификатора местоположения или не включать значение для обязательного столбца NOT NULL.

Такое применение подзапросов помогает избежать необходимости создания представления лишь для выполнения инструкции INSERT.

В примере на рисунке подзапрос используется вместо LOC, чтобы создать запись для нового европейского города.

Примечание. Операцию INSERT для представления EUROPEAN_CITIES можно также выполнить, воспользовавшись следующим программным кодом:

     INSERT INTO european_cities
VALUES (3300,’Cardiff’,’UK’);

Пример вставки с использованием подзапроса как целевого объекта

Проверьте результаты.

4-8-7163888

В примере на рисунке показывается, что при вставке через встроенное представление была создана новая запись в базовой таблице LOC.

В следующем примере показываются результаты подзапроса, который использовался в целях идентификации таблицы для инструкции INSERT.

     SELECT l.location_id, l.city, l.country_id FROM loc l JOIN countries c ON(l.country_id = c.country_id) JOIN regions USING(region_id)

WHERE region_name = 'Europe‘

4-8-2-5941404

Далее: Сравнение даты и времени в часовом поясе сеанса

Похожие записи