SQLite 错误代码
按代码或错误消息搜索,查看官方说明及故障排除、诊断链接。
搜索在浏览器中进行。同一编号在不同产品中可能有不同含义。
SQLite 代码
101 项- abort
SQLITE_ABORT 结果代码指示操作在完成之前被中止,通常是根据应用程序请求。另请参阅:SQLITE_INTERRUPT。 如果 sqlite3_exec() 的回调函数返回非零,则 sqlite3_exec() 将返回 SQLITE_ABORT。 如果 ROLLBACK 操作与挂起的读取或写入在同一数据库连接上发生,则挂起的读取或写入可能会失败,并出现 SQLITE_ABORT 或 SQLITE_ABORT_ROLLBACK 错误。 除了作为结果代码之外,SQLITE_ABORT值还用作从sqlite3_vtab_on_conflict()接口返回的冲突解决模式。
SQLiteSQLite - abort rollback
SQLITE_ABORT_ROLLBACK 错误代码是 SQLITE_ABORT 的扩展错误代码,指示 SQL 语句中止,因为 SQL 语句首次启动时处于活动状态的事务已回滚。发生回滚时,挂起的写入操作始终会失败并出现此错误。仅当正在回滚的事务中模式发生更改时,ROLLBACK 才会导致挂起的读取操作失败。
SQLiteSQLite - auth
当授权者回调指示正在准备的 SQL 语句未经授权时,会返回 SQLITE_AUTH 错误。
SQLiteSQLite - auth user
SQLITE_AUTH_USER 错误代码是 SQLITE_AUTH 的扩展错误代码,指示尝试对登录用户缺乏足够授权的数据库进行操作。
SQLiteSQLite - busy
SQLITE_BUSY 结果代码表示由于某些其他数据库连接(通常是单独进程中的数据库连接)的并发活动,无法写入(或在某些情况下读取)数据库文件。 例如,如果进程 A 正在进行一个大型写事务,同时进程 B 尝试启动一个新的写事务,则进程 B 将返回 SQLITE_BUSY 结果,因为 SQLite 一次只支持一个写入者。进程 B 需要等待进程 A 完成其事务才能开始新事务。 sqlite3_busy_timeout() 和 sqlite3_busy_handler() 接口以及 busy_timeout 编译指示可用于进程 B 以帮助其处理 SQLITE_BUSY 错误。 SQLITE_BUSY 错误可能发生在事务中的任何点:事务首次启动时、任何写入或更新操作期间或事务提交时。为了避免在事务中间遇到 SQLITE_BUSY 错误,应用程序可以使用 BEGIN IMMEDIATE 而不仅仅是 BEGIN 来启动事务。 BEGIN IMMEDIATE 命令本身可能返回 SQLITE_BUSY,但如果成功,则 SQLite 保证通过下一次 COMMIT 对同一数据库执行的任何后续操作都不会返回 SQLITE_BUSY。 另请参见:SQLITE_BUSY_RECOVERY 和 SQLITE_BUSY_SNAPSHOT。 SQLITE_BUSY 结果代码与 SQLITE_LOCKED 的不同之处在于,SQLITE_BUSY 指示与单独的数据库连接(可能在单独的进程中)发生冲突,而 SQLITE_LOCKED 指示同一数据库连接(或有时与共享缓存的数据库连接)内的冲突。
SQLiteSQLite - busy recovery
SQLITE_BUSY_RECOVERY 错误代码是 SQLITE_BUSY 的扩展错误代码,指示操作无法继续,因为崩溃后另一个进程正忙于恢复 WAL 模式数据库文件。 SQLITE_BUSY_RECOVERY错误代码仅发生在WAL模式数据库上。
SQLiteSQLite - busy snapshot
SQLITE_BUSY_SNAPSHOT 错误代码是 SQLITE_BUSY 的扩展错误代码,当数据库连接尝试将读取事务提升为写入事务但发现另一个数据库连接已写入数据库并因此使之前的读取无效时,会在 WAL 模式数据库上发生该错误代码。 以下场景说明了如何可能出现 SQLITE_BUSY_SNAPSHOT 错误:
SQLiteSQLite - busy timeout
SQLITE_BUSY_TIMEOUT 错误代码表示 VFS 层中的阻塞 Posix 咨询文件锁定请求由于超时而失败。阻止 Posix 咨询锁仅作为专有 SQLite 扩展提供,即使如此,也仅在使用 SQLITE_ENABLE_SETLK_TIMEOUT 编译时选项编译 SQLite 时才受支持。
SQLiteSQLite - cantopen
SQLITE_CANTOPEN 结果代码指示 SQLite 无法打开文件。相关文件可能是主数据库文件或多个临时磁盘文件之一。
SQLiteSQLite - cantopen convpath
SQLITE_CANTOPEN_CONVPATH 错误代码是 SQLITE_CANTOPEN 的扩展错误代码,仅由 Cygwin VFS 使用,指示 cygwin_conv_path() 系统调用在尝试打开文件时失败。另请参阅:SQLITE_IOERR_CONVPATH
SQLiteSQLite - cantopen dirtywal
此时不使用 SQLITE_CANTOPEN_DIRTYWAL 结果代码。
SQLiteSQLite - cantopen fullpath
SQLITE_CANTOPEN_FULLPATH 错误代码是 SQLITE_CANTOPEN 的扩展错误代码,指示文件打开操作失败,因为操作系统无法将文件名转换为完整路径名。
SQLiteSQLite - cantopen isdir
SQLITE_CANTOPEN_ISDIR 错误代码是 SQLITE_CANTOPEN 的扩展错误代码,指示文件打开操作失败,因为该文件实际上是一个目录。
SQLiteSQLite - cantopen notempdir
不再使用 SQLITE_CANTOPEN_NOTEMPDIR 错误代码。
SQLiteSQLite - cantopen symlink
当使用 SQLITE_OPEN_NOFOLLOW 标志并且数据库文件是符号链接时,sqlite3_open() 接口及其同级接口返回 SQLITE_CANTOPEN_SYMLINK 结果代码。
SQLiteSQLite - constraint
SQLITE_CONSTRAINT 错误代码表示在尝试处理 SQL 语句时发生了 SQL 约束冲突。有关失败约束的其他信息可以通过查阅随附的错误消息(通过 sqlite3_errmsg() 或 sqlite3_errmsg16() 返回)或查看扩展错误代码来找到。 SQLITE_CONSTRAINT 代码还可以用作虚拟表实现的 xBestIndex() 方法的返回值。当 xBestIndex() 返回 SQLITE_CONSTRAINT 时,表明提交给 xBestIndex() 的特定输入组合无法产生可用的查询计划,因此不应进一步考虑。
SQLiteSQLite - constraint check
SQLITE_CONSTRAINT_CHECK 错误代码是 SQLITE_CONSTRAINT 的扩展错误代码,指示 CHECK 约束失败。
SQLiteSQLite - constraint commithook
SQLITE_CONSTRAINT_COMMITHOOK 错误代码是 SQLITE_CONSTRAINT 的扩展错误代码,指示提交挂钩回调返回非零,从而导致 SQL 语句回滚。
SQLiteSQLite - constraint datatype
SQLITE_CONSTRAINT_DATATYPE 错误代码是 SQLITE_CONSTRAINT 的扩展错误代码,指示插入或更新尝试在定义为 STRICT 的表中存储与列声明类型不一致的值。
SQLiteSQLite - constraint foreignkey
SQLITE_CONSTRAINT_FOREIGNKEY 错误代码是 SQLITE_CONSTRAINT 的扩展错误代码,指示外键约束失败。
SQLiteSQLite - constraint function
SQLite 核心当前未使用 SQLITE_CONSTRAINT_FUNCTION 错误代码。但是,此错误代码可供扩展函数使用。
SQLiteSQLite - constraint notnull
SQLITE_CONSTRAINT_NOTNULL 错误代码是 SQLITE_CONSTRAINT 的扩展错误代码,指示 NOT NULL 约束失败。
SQLiteSQLite - constraint pinned
SQLITE_CONSTRAINT_PINNED 错误代码是 SQLITE_CONSTRAINT 的扩展错误代码,指示 UPDATE 触发器尝试删除在更新过程中正在更新的行。
SQLiteSQLite - constraint primarykey
SQLITE_CONSTRAINT_PRIMARYKEY 错误代码是 SQLITE_CONSTRAINT 的扩展错误代码,指示 PRIMARY KEY 约束失败。
SQLiteSQLite - constraint rowid
SQLITE_CONSTRAINT_ROWID 错误代码是 SQLITE_CONSTRAINT 的扩展错误代码,指示 rowid 不唯一。
SQLiteSQLite - constraint trigger
SQLITE_CONSTRAINT_TRIGGER 错误代码是 SQLITE_CONSTRAINT 的扩展错误代码,指示触发了触发器内的 RAISE 函数,导致 SQL 语句中止。
SQLiteSQLite - constraint unique
SQLITE_CONSTRAINT_UNIQUE 错误代码是 SQLITE_CONSTRAINT 的扩展错误代码,指示 UNIQUE 约束失败。
SQLiteSQLite - constraint vtab
SQLite 核心当前未使用 SQLITE_CONSTRAINT_VTAB 错误代码。但是,此错误代码可供应用程序定义的虚拟表使用。
SQLiteSQLite - corrupt
SQLITE_CORRUPT 结果代码表示数据库文件已损坏。有关损坏如何发生的进一步讨论,请参阅如何损坏数据库文件。
SQLiteSQLite - corrupt index
SQLITE_CORRUPT_INDEX 结果代码意味着 SQLite 检测到索引中缺少某个条目。这是 SQLITE_CORRUPT 错误代码的特殊情况,表明该问题可以通过运行 REINDEX 命令来解决,假设数据库文件中的其他位置不存在其他问题。
SQLiteSQLite - corrupt sequence
SQLITE_CORRUPT_SEQUENCE 结果代码意味着 sqlite_sequence 表的架构已损坏。 sqlite_sequence 表用于帮助实现自动增量功能。 sqlite_sequence 表应具有以下格式: 如果 SQLite 发现 sqlite_sequence 表具有任何其他格式,它将返回 SQLITE_CORRUPT_SEQUENCE 错误。
SQLiteSQLite - corrupt vtab
SQLITE_CORRUPT_VTAB 错误代码是虚拟表使用的 SQLITE_CORRUPT 的扩展错误代码。虚拟表可能会返回 SQLITE_CORRUPT_VTAB 以指示虚拟表中的内容已损坏。
SQLiteSQLite - empty
当前未使用 SQLITE_EMPTY 结果代码。
SQLiteSQLite - error
SQLITE_ERROR 结果代码是通用错误代码,在没有其他更具体的错误代码可用时使用。
SQLiteSQLite - error missing collseq
SQLITE_ERROR_MISSING_COLLSEQ 结果代码意味着无法准备 SQL 语句,因为无法找到该 SQL 语句中指定的整理序列。 有时,当遇到此错误代码时,sqlite3_prepare_v2() 例程会将错误转换为 SQLITE_ERROR_RETRY 并再次尝试使用不需要使用未知整理序列的不同查询计划来准备 SQL 语句。
SQLiteSQLite - error retry
SQLITE_ERROR_RETRY 在内部使用来激发 sqlite3_prepare_v2() (或其用于创建准备好的语句的同级例程之一),以再次尝试准备因上次尝试而出错而失败的语句。
SQLiteSQLite - error snapshot
尝试使用 sqlite3_snapshot_open() 接口在数据库的历史版本上启动读取事务时,可能会返回 SQLITE_ERROR_SNAPSHOT 结果代码。如果历史快照不再可用,则读取事务将失败并返回 SQLITE_ERROR_SNAPSHOT。仅当使用 -DSQLITE_ENABLE_SNAPSHOT 编译 SQLite 时,才会出现此错误代码。
SQLiteSQLite - format
SQLite 当前未使用 SQLITE_FORMAT 错误代码。
SQLiteSQLite - full
SQLITE_FULL 结果代码表示写入无法完成,因为磁盘已满。请注意,尝试将信息写入主数据库文件时可能会发生此错误,或者写入临时磁盘文件时也可能会发生此错误。 有时,即使主磁盘空间充足,应用程序也会遇到此错误,因为在系统上写入临时磁盘文件时会发生此错误,其中临时文件存储在空间比主磁盘少得多的单独分区上。
SQLiteSQLite - internal
SQLITE_INTERNAL 结果代码指示内部故障。在 SQLite 的工作版本中,应用程序永远不应该看到此结果代码。如果应用程序确实遇到此结果代码,则表明数据库引擎中存在错误。 此结果代码可能是由 SQLite 中的错误引起的。但是,应用程序定义的 SQL 函数或虚拟表、VFS 或其他扩展也可能导致返回此结果代码,因此问题可能不是核心 SQLite 的错误。
SQLiteSQLite