SQL | Заявление INSERT IGNORE

Опубликовано: 30 Ноября, 2021

Мы знаем, что первичный ключ таблицы не может быть продублирован. Например, номер ученика в таблице учеников всегда должен быть разным. Аналогичным образом ожидается, что EmployeeID будет уникальным в таблице сотрудников. Когда мы пытаемся вставить кортеж в таблицу, в которой повторяется первичный ключ, это приводит к ошибке. Однако с помощью оператора INSERT IGNORE мы можем предотвратить появление таких ошибок, особенно при массовой вставке записей, и такие ошибки могут прервать процесс вставки. Вместо этого выдается только предупреждение.

Случаи, когда INSERT IGNORE позволяет избежать ошибки

  • При вставке повторяющегося ключа, в котором столбец должен содержать ограничение PRIMARY KEY или UNIQUE
  • После вставки значения NULL, когда столбец имеет ограничение NOT NULL.
  • При вставке строки в многораздельную таблицу, где вставленные значения противоречат формату раздела.

Пример:

Допустим, у нас есть отношения, Сотрудник.

Таблица сотрудников:

EmployeeID Имя Город
15001 Аакаш Дели
15003 Сахил Бангалор
15010 Джон Хайдарабад
15008 Шелли Дели
15002 Ананья Мумбаи
15004 Sia Пуна

Как мы можем заметить, записи не сортируются на основе их первичного ключа, то есть EmployeeID.

Образец запроса:

ВСТАВИТЬ ИГНОРИРОВАНИЕ В сотрудника (идентификатор сотрудника, имя, город)
ЦЕННОСТИ (15002, «Рам», «Мумбаи»);

Выход:
Запись не добавлена.

Образец запроса:

Вставка нескольких записей

При одновременной вставке нескольких записей, те, которые не могут быть вставлены, не будут, но любые, которые могут быть:

ВСТАВИТЬ ИГНОРИРОВАНИЕ В сотрудника (идентификатор сотрудника, имя, город)
ЦЕННОСТИ (15007, Шикха, Дели), (15002, Рам, Мумбаи), (15009, Сам, Ахмедабад);

Выход:
Вставляются первая и последняя записи; средняя запись просто игнорируется. Ошибка не высвечивается.

Недостаток

Большинство пользователей не предпочитают INSERT IGNORE перед INSERT, поскольку некоторые ошибки могут остаться незамеченными. Это может вызвать несоответствия в таблице, в результате чего некоторые кортежи не будут вставлены без возможности исправить их. Следовательно, INSERT IGNORE необходимо использовать в очень специфических условиях.

Эта статья предоставлена Ананней Уберой . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.

SQL