Spec-Zone.ru › MariaDB

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 может быть использована для предотвращения этого.

Содержимое, воспроизведенное на этом сайте, является собственностью его соответствующих владельцев, и это содержание не проверяется предварительно MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают мнения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/ignore/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API