Инструменты пользователя

Инструменты сайта


Боковая панель

Введение

Статьи и часто задаваемые вопросы

Установка и настройка

Обработка ошибок

Полезные запросы SQL

Тематические группы

insert

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

Только авторизованные участники могут оставлять комментарии.
insert.txt · Последние изменения: 2012/07/17 14:07 (внешнее изменение)