Иллюстрированный самоучитель по PostgreSQL

INSERT

Вставка новых записей в таблицу.

Синтаксис:

INSERT INTO таблице [ (поле [….]) ]
{ DEFAULT VALUES
VALUES (значение [….]) |
запрос }

Параметры:

  • таблица. Таблица, в которую вставляются новые данные.
  • поле. Имя поля, для которого задается значение. Должно совпадать с именем одного из полей таблицы, хотя порядок перечисления полей в команде не обязан совпадать с естественным порядком их следования в таблице.
  • значение. Константа или выражение, заносимое в таблицу. Если в команде задан список полей, значение ассоциируется с соответствующим полем в списке (перечисленные поля должны однозначно соответствовать выражениям в списке). Если для какого-либо поля выражение относится к другому типу данных, PostgreSQL пытается выполнить преобразование типа. Если попытка завершается неудачей, вся команда INSERT отменяется.
  • запрос. Синтаксически правильная команда SQL SELECT. Количество полей, возвращаемых запросом, должно соответствовать количеству полей в списке, а их типы данных должны быть совместимы.

Результаты:

  • INSERT aid 1. Сообщение возвращается в случае успешной вставки одной записи. Значение aid представляет собой идентификатор объекта вставленной записи.
  • INSERT 0 число. Сообщение возвращается в случае успешной вставки нескольких записей. Параметр число определяет общее количество вставленных записей.

Описание

Команда INSERT вставляет в таблицу новые записи. Записи могут вставляться как по одной, так и группами. В сочетании с ключевым словом VALUES команда INSERT всегда вставляет ровно одну запись. Чтобы вставить несколько записей, можно воспользоваться данными, полученными в результате запроса. Данные из итогового набора запроса заносятся в таблицу, указанную в команде INSERT.

Если при вставке для какого-либо поля указано значение неправильного типа, PostgreSQL автоматически преобразует его к нужному типу. Если преобразование невозможно, команда INSERT завершается неудачей. При вставке отдельных полей (вместо целых записей) допускается перечисление полей в произвольном порядке; однако порядок следования значений должен соответствовать порядку следования полей.

Примечание
Если значения каких-либо полей не указаны, PostgreSQL выбирает один из двух вариантов. Если для поля не задано значение по умолчанию, ему присваивается псевдозначение NULL. Поля, для которых задано значение по умолчанию, инициализируются этим значением
.

Примеры

Следующая команда вставляет одну запись в таблицу employees:

booktown=# INSERT INTO employees
booktown-# VALUES (106. 'Hall'. 'Timothy');
INSERT 3752064 1

В другом примере задаются значения полей id и last_name (без поля first_name); эти поля перечисляются в списке, предшествующем секции VALUES. В результате поле first_name инициализируется значением NULL:

booktown=# INSERT INTO employees (id .last_name)
booktown=# VALUES (108, 'Williams');
INSERT 3752065 1

В последнем примере вес 15 записей таблицы books сохраняются в таблице books_backup, при этом источником данных при вставке является запрос:

booktown=# INSERT INTO book_backup
booktown-# SELECT * FROM books;
INSERT 0 15
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.