SQL | Заявление INSERT IGNORE
Мы знаем, что первичный ключ таблицы не может быть продублирован. Например, номер ученика в таблице учеников всегда должен быть разным. Аналогичным образом ожидается, что 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, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.