Что означает код HRESULT 0x87AF0013 (SQLITE_E_CONSTRAINT)?

 
Предыдущий Следующий
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 и ограничения


Нужно найти другой код? Найти другой код состояния или ошибки.