Содержание
INSERT
Версии сервера
Firebird v0.9 Firebird v1.0 Firebird v1.5 Firebird v2.0
Формат
INSERT INTO <object> [(col [, col ...])] {VALUES (<val> [, <val> ...]) | <select_expr>} [RETURNING <column_list> [INTO <variable_list>]]; <object> = tablename | viewname val = {:variable | constant | expr | function | udf ([val [, val …]]) | NULL | USER | RDB$DB_KEY | ? } [COLLATE collation] <constant> = num | 'string' | charsetname 'string' <expr> = Допустимое выражение SQL, которое возвращает в одиночное значение столбца. <function> = { CAST (<val> AS <datatype>) | UPPER (<val>) | GEN_ID (generator, <val>) } <select_expr> = SELECT возвращающий ноль или более строк, где число столбцов в каждой строке такое же, как число элементов, которые должны быть вставлены.
Аргумент | Описание |
---|---|
INTO <object> | Имя существующей таблицы или вида, в которую вставляются данные. |
col | Имя существующего столбца в таблице или виде, в который вставляются значения. |
VALUES (<val> [, <val> …] | Список значению для вставки в таблицу или вид. Значения должны быть в том же порядке, как целевые столбцы. |
RETURNING <column_list> [INTO <variable_list>] | Только для Firebird 2.0 и выше. |
<select_expr> | Запрос, который возвращает значения, для вставки в целевые столбцы. |
<column_list> | Список возвращаемых доменов объекта. только Firebird v2.0 и выше |
<variable_list> | Список переменных в которые будут помещены возвращаемые домены объекта. только Firebird v2.0 и выше |
Описание
INSERT добавляет одну или более новых строк данных к существующей таблице или виду. INSERT - одна из привилегий базы данных, которая контролируется инструкциями GRANT и REVOKE.
Значения вставляются в столбцы строки по порядку их следования, если не задан факультативный список столбцов. Если список столбцов задан на множестве всех доступных столбцов, во все неперечисленные столбцы автоматически вcтавляется или значение по умолчанию, или NULL.
Если факультативный список столбцов упущен, предложение VALUES должно содержать значения для всех столбцов таблицы.
Чтобы вставить одну строку данных, должно присутствовать предложение VALUES и содержать определенный список значений.
Чтобы вставить несколько строк данных, определите <select_expr>, которое возвращает уже существующие данные из другой таблицы. Выбранные строки должны соответствовать списку столбцов.
Допустимо выбирать из той же таблицы, в которую строки вставляются, но эта практика не рекомендуется, так как подобные действия могут привести к бесконечным вставкам строк (зацикливанию).
Пример
Следующая инструкция добавляет строку в таблицу, присваивает значения двум столбцам:
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (52, 'DGPII');
Следующая инструкция определяет значения, чтобы вставить в таблицу, используя инструкцию SELECT:
INSERT INTO PROJECTS SELECT * FROM NEW_PROJECTS WHERE NEW_PROJECTS.START_DATE > '6-JUN-1994';
См. также
Источник
langref.pdf
Обсуждение