Ошибки · Решение
SQLite SQLITE_CONSTRAINT (19): нарушено ограничение данных
Primary code сообщает класс ошибки; extended code уточняет CHECK, FOREIGNKEY, NOTNULL, UNIQUE, PRIMARYKEY и другие варианты.
Короткий ответ
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.
- Сопоставьте конфликтующее значение с существующими строками/родительскими ключами.
Безопасные шаги
- Исправьте данные либо логику операции согласно конкретному extended constraint.
- Не отключайте foreign_keys/constraints для маскировки ошибки production data.
- Если конфликт ожидаем, обработайте его как бизнес-сценарий на уровне приложения.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если primary code 19 недостаточен, включите extended result codes и передайте разработчику точный SQLITE_CONSTRAINT_*.
Похожие ошибки
- /errors/sqlite-busy-5/
- /errors/sqlite-locked-6/
- /errors/sqlite-readonly-8/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.