| Предыдущий | Следующий |
| SQLITE_E_TOOBIG | SQLITE_E_MISMATCH |
SQLITE_E_CONSTRAINT
SQLITE_E_CONSTRAINT соответствует коду SQLite SQLITE_CONSTRAINT. Оператор попытался оставить базу данных в состоянии, нарушающем объявленное правило, например CHECK, NOT NULL, UNIQUE, PRIMARY KEYили FOREIGN KEY.
Базовый код не указывает, какое именно правило нарушено. Получите расширенный код результата и полное сообщение SQLite, затем проверьте значения оператора и определение таблицы.
Что проверить
- Запишите параметры SQL-оператора или их эквивалентное безопасное представление; одной схемы недостаточно для воспроизведения большинства нарушений ограничений.
- Используйте
sqlite_masterили.schema, чтобы проверить фактические определения таблиц, индексов и триггеров, развёрнутые на проблемном компьютере. - Выбирайте явную стратегию разрешения конфликтов только тогда, когда она соответствует модели данных; не используйте
OR REPLACEлишь для сокрытия дублирующихся данных.
SELECT sql FROM sqlite_master WHERE type IN ('table', 'index', 'trigger');
SQLite: коды результатов и ошибок
SQLite: разрешение конфликтов ограничений
SQLite: CREATE TABLE и ограничения
Нужно найти другой код? Найти другой код состояния или ошибки.