Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在制作 SQLite C API 的包装器。我想将 rowid 作为整数类型返回。为了标记错误情况,我需要一个无效的 rowid 值。SQLite rowid 的值是否无效?还是有符号 64 位整数中的所有值都对 rowid 有效?(因为如果是,我必须选择另一种方式来实现标记错误案例)
行 ID 是 64 位有符号整数,因此最大值为 0x7FFFFFFFFFFFFFFFLL。但除非明确输入负数或零行 ID,否则自动生成的行 ID 始终大于零。如果您可以确定将始终自动生成行 ID,那么零或 -1 将是错误状态返回的安全值。
进一步思考,我意识到sqlite3_last_insert_rowid如果没有向表中插入任何内容,API 调用将返回零,从而使零成为事实上的“无效”行 ID。
sqlite3_last_insert_rowid