Insert (SQL)

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Streamer000 (обсуждение | вклад) в 11:29, 20 апреля 2008 (создание статьи). Она может серьёзно отличаться от текущей версии.
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

INSERT — оператор языка SQL который позволяет добавить строки в таблицу, заполняя их значениями. Значения можно вставлять перечислением с помощью слова values и перечислив их в круглых скобках через запятую или оператором select.

Примеры использования

Используя перечисление значений, с указанием столбцов:

insert into table1(name, deposit, date) values ('Ivanov A.A.', 16602.85, '30.03.2008')

Используя перечисление значений, без указания столбцов:

insert into table1 values ('Ivanov A.A.', 16602.85, '30.03.2008')

Используя select:

insert into table1 select c1_name, c1_deposit, c1_date from c1

В последенем случае, в таблицу может вставится более одной записи. Если в таблице есть другие поля требующие заполнения, но не указанные в операторе insert, дляних будет установлено значение по умолчанию, либо null, если значение по умолчанию не указано.

Особенности

Во время выполнения оператора могут возикнуть ошибки:

  • если при создании таблицы для поля было указан параметр not null и не было определено значение по умолчанию (см. create), то при отсутствии для него вставляемого значения возникнет ошибка. Решение очевидно:
    • либо убрать параметр not null
    • либо указать значение по умолчанию
    • либо вставить значение
  • если произойдет попытка вставки в поле с типом identity (автоинкремент), то также произойдет ошибка. Решить проблему можно двумя способами:
    • не вставлять значение в это поле
    • указать опцию insert_identity on после чего вставить уникальное значение для этого столбца
    • не вставлять значение в это поле

Опция insert_identity

См. также