n1ro°
RU

Ошибки · Решение

SQLite SQLITE_CONSTRAINT (19): нарушено ограничение данных

Primary code сообщает класс ошибки; extended code уточняет CHECK, FOREIGNKEY, NOTNULL, UNIQUE, PRIMARYKEY и другие варианты.

Редакция N1RO · Проверено

Короткий ответ

SQLITE_CONSTRAINT (19) означает нарушение SQL constraint при выполнении statement. Сверьте код с официальной поддержкой производителя и выполните только безопасные шаги.

Что означает ошибка

Primary code сообщает класс ошибки; extended code уточняет CHECK, FOREIGNKEY, NOTNULL, UNIQUE, PRIMARYKEY и другие варианты.

Возможные причины

  • Вставляется duplicate unique/primary key.
  • Не выполнен NOT NULL/CHECK/FOREIGN KEY constraint.
  • Trigger/virtual table возвращает constraint failure.

Что проверить

  • Считайте extended result code вместо анализа только числа 19.
  • Посмотрите error message и определение constraint в schema.
  • Сопоставьте конфликтующее значение с существующими строками/родительскими ключами.

Безопасные шаги

  1. Исправьте данные либо логику операции согласно конкретному extended constraint.
  2. Не отключайте foreign_keys/constraints для маскировки ошибки production data.
  3. Если конфликт ожидаем, обработайте его как бизнес-сценарий на уровне приложения.

Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.

Когда нужен сервис

  • Если primary code 19 недостаточен, включите extended result codes и передайте разработчику точный SQLITE_CONSTRAINT_*.

Похожие ошибки

  • /errors/sqlite-busy-5/
  • /errors/sqlite-locked-6/
  • /errors/sqlite-readonly-8/

Что учитывать

Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.

Официальный источник

Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.