跳到主要内容

isUniqueConstraintViolation()

function isUniqueConstraintViolation(cause): boolean;

Defined in: packages/rxdb/src/system/migration.ts:213

判定错误是否为唯一/主键约束冲突。

Parameters​

ParameterTypeDescription
causeunknown适配器抛出的原始错误

Returns​

boolean

是唯一/主键约束冲突时返回 true

Remarks​

各适配器的错误对象结构不一,能共用的只有两样:PostgreSQL 的 SQLSTATE 23505, 以及 SQLite 各绑定(wa-sqlite / sqlite-wasm / sqliteai / node)消息里必带的原生文本。 只匹配这两类,其余错误原样上抛 —— 与 sqlite-core-keyring-storage.ts 同一口径(SQLC-029)。

不要拿它去判断任意位置的写失败是不是并发冲突:它只说「这是唯一约束冲突」, 说不了「冲突的是哪张表哪个索引」。调用方必须把它夹在那一条自己发出的 INSERT 上, 否则用户代码里一条无关的唯一约束错误会被误读(见 RxDBMigrationClaimConflictError)。