Что означает код HRESULT 0xC8000645 (hrKeyDuplicate)?

 
Предыдущий Следующий
hrRecordClusteredChanged hrAlreadyPrepared

hrKeyDuplicate

Что означает hrKeyDuplicate

hrKeyDuplicate (0xC8000645) — ключ уже существует.

Это старый HRESULT-вариант результата ESE (Extensible Storage Engine, ESENT); в JET API соответствующее условие известно как JET_errKeyDuplicate.

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

  • Зафиксируйте текущий индекс, его сегменты и флаги, а также фактически построенный ключ. Ошибка определения индекса отличается от ошибки позиции курсора или конфликтующего ключа.
  • После изменения индексируемых столбцов заново проверьте позицию курсора; для unique/primary индекса отдельно исследуйте ключ конфликтующей записи.

Практический смысл и диагностика

  • Insert или update нарушил unique либо primary index key.
  • `hrIndexDuplicate` относится к duplicate schema/index name; `hrKeyDuplicate` — к данным row key.
  • Рассматривайте это как concurrency/data-integrity outcome и используйте идемпотентный lookup-or-update workflow вместо blind retry.
  • Зафиксируйте index name, полностью encoded key segments, null handling, transaction snapshot и bookmark существующей конфликтующей row.

Технические ссылки


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