с помощью команды SELECT выбираются из таблицы aircrafts и вставляются в табли-
цу aircrafts_tmp. При вставке строк, выбранных из одной таблицы, в другую табли-
цу необходимо, чтобы число атрибутов и их типы данных во вставляемых строках
были согласованы с числом столбцов и их типами данных в целевой таблице. За-
вершается конструкция WITH add_row AS (...) предложением RETURNING *, которое
просто возвращает внешнему запросу все строки, успешно добавленные в таблицу
aircrafts_tmp. Конечно же, при этом из таблицы aircrafts_tmp добавленные строки ни-
куда не исчезают. Запрос получает имя add_row, на которое может ссылаться внешний
запрос, когда он «хочет» обратиться к строкам, возвращенным с помощью предложе-
ния RETURNING *.
Теперь обратимся к внешнему запросу. В нем также присутствует команда INSERT,
которая получает данные для ввода в таблицу aircrafts_log от запроса SELECT. А
этот запрос, в свою очередь, получает данные от временной таблицы add_row, ука-
занной в предложении FROM. Поскольку в предложении RETURNING мы указали в
качестве возвращаемого значения «*», то будут возвращены все столбцы таблицы
aircrafts_tmp, т. е. той таблицы, в которую строки были
вставлены
. Следовательно,
в команде SELECT внешнего запроса можно ссылаться на имена этих столбцов:
Достарыңызбен бөлісу: