我正在制作一个sqlite c api的包装器。我想作为整数类型返回rowid。要标记错误情况,我需要ROWID的无效值。sqlite rowid的值是否存在?或符号64bit整数中的所有值对于rowid都有效?(因为如果是,我必须选择另一种实现标记错误情况的方法)

有帮助吗?

解决方案

行ID是64位符号整数,因此最大值为0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFL。但除非已明确输入负或零行ID,否则自动生成的行ID始终大于零。如果您可以确定将始终自动生成行ID,则零或-1将是错误状态返回的安全值。

进一步思考,我意识到,如果没有插入表格,则意识到sqlite3_last_insert_rowid API调用返回零,从而使零是“无效”行ID。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top