IGNORE
Опция IGNORE сообщает серверу игнорировать некоторые распространённые ошибки.
IGNORE можно использовать со следующими операторами:
- УДАЛИТЬ
- ВСТАВИТЬ (также см. ВСТАВИТЬ ИГНОРИРУЯ)
- LOAD DATA INFILE
- ОБНОВИТЬ
- ИЗМЕНИТЬ ТАБЛИЦУ
- СОЗДАТЬ ТАБЛИЦУ ... ВЫБРАТЬ
- ВСТАВИТЬ ... ВЫБРАТЬ
Используемая логика:
- Переменные, выходящие за пределы диапазона, заменяются максимальным/минимальным значением.
-
SQL_MODEs
STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATEигнорируются.
- Вставка
NULLв полеNOT NULLприведет к вставке 0 (в числовом поле), 0000-00-00 (в поле даты) или пустой строки (в текстовом поле).
- Строки, вызывающие ошибку дублирования ключа или нарушение ограничения внешнего ключа, не вставляются, не обновляются и не удаляются.
Следующие ошибки игнорируются:
| Номер ошибки | Символическое имя ошибки | Описание |
|---|---|---|
1022 |
ER_DUP_KEY |
Невозможно записать; дублирующийся ключ в таблице '%s' |
1048 |
ER_BAD_NULL_ERROR |
Столбец '%s' не может быть NULL |
1062 |
ER_DUP_ENTRY |
Дублирующая запись '%s' для ключа %d |
1242 |
ER_SUBQUERY_NO_1_ROW |
Подзапрос возвращает более одной строки |
1264 |
ER_WARN_DATA_OUT_OF_RANGE |
Значение вне диапазона для столбца '%s' в строке %ld |
1265 |
WARN_DATA_TRUNCATED |
Данные усечены для столбца '%s' в строке %ld |
1292 |
ER_TRUNCATED_WRONG_VALUE |
Усеченное неверное значение %s: '%s' |
1366 |
ER_TRUNCATED_WRONG_VALUE_FOR_FIELD |
Неверное целое значение |
1369 |
ER_VIEW_CHECK_FAILED |
CHECK OPTION failed '%s.%s' |
1451 |
ER_ROW_IS_REFERENCED_2 |
Невозможно удалить или обновить строку-родитель |
1452 |
ER_NO_REFERENCED_ROW_2 |
Невозможно добавить или обновить строку-потомка: ошибка ограничения внешнего ключа (%s) |
1526 |
ER_NO_PARTITION_FOR_GIVEN_VALUE |
В таблице нет раздела для значения %s |
1586 |
ER_DUP_ENTRY_WITH_KEY_NAME |
Дублирующая запись '%s' для ключа '%s' |
1591 |
ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT |
В таблице нет раздела для некоторых существующих значений |
1748 |
ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET |
Найдена строка, не соответствующая заданному набору разделов |
Игнорируемые ошибки обычно генерируют предупреждение.
Свойство входящего в состав IGNORE оператора заключается в том, чтобы привести к одинаковому поведению транзакционных движков и движков без транзакций (таких как InnoDB и Aria). Например, обычно многострочный оператор вставки, который пытается нарушить ограничение UNIQUE, полностью отменяется в InnoDB, но может быть частично выполнен в Aria. С помощью оператора IGNORE, оператор будет частично выполнен в обоих движках.
Ошибки дублирования ключа также генерируют предупреждения. Переменная сервера OLD_MODE может быть использована для предотвращения этого.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/ignore/