Оператор Insert ... Select |
Оператор insert ... select позволяет копировать содержимое выборки в произвольную таблицу, в том числе и в таблицу в памяти. Он ускоряет работу прикладного кода и повышает совместимость с языком SQL.
<оператор-копирования-выборки> = insert [ <параметры-визуализации> ] [ into ] <имя-таблицы> [ ( <список-полей> ) ] select <оператор-выборки> [ ignore_errors ( <список-кодов> ) ] ;
<параметры-визуализации> - параметры визуализации итераций по таблице. По синтаксису и реализации совпадают с элементом <параметр-визуализации> операторов модификации (раздел "Операторы Insert, Update и Delete. ").
<имя-таблицы> - узел логической таблицы, в который будет вставлена выборка.
<список-полей> - перечислены поля таблицы, в которые производится вставка значений из соответствующих позиций в операторе select.
При перечислении полей в элементе <список-полей> необходимо позиционное соответствие между полями в нем и значениями полей в элементе <оператор-выборки>, при этом примитивные преобразования типов могут быть выполнены компилятором автоматически. Если элемент <список-полей> опущен, то значения из оператора выборки должны соответствовать всем полям таблицы назначения в соответствии с описанием структуры таблицы.
<оператор-выборки> - оператор выборки языка VIP. См. "Оператор описания выборки (select). ".
В операторе insert ... select <оператор-выборки> представляет собой отдельную логическую таблицу, которая не связана ни с логическими таблицами интерфейса, ни с ограничениями, накладываемыми на них в тот или иной момент времени. А это значит, что все ограничения на <оператор-выборки> необходимо задавать внутри него самого.
Если в операторе выборки отсутствуют вычисляемые выражения (в качестве элементов выборки используются константы и поля таблиц базы данных), и если драйвер базы данных реализует соответствующую функцию, то весь оператор может быть выполнен на сервере базы данных без пересылки данных между сервером и клиентом.
<список-кодов> - список кодов ошибок (числа или идентификаторы ts-констант, разделенные запятыми), которые будут игнорироваться в процессе исполнения оператора. См. "Коды ошибок обращения к БД".