7

SQLiteCAPIのラッパーを作成しています。そして、rowidを整数型として返したいです。エラーケースをマークするには、ROWIDの無効な値が必要です。SQLiteのROWIDの無効な値はありますか?または、符号付き64ビット整数のすべての値がROWIDに有効ですか?(そうであれば、マーキングエラーの場合を実装する別の方法を選択する必要があるため)

4

1 に答える 1

14

行IDは64ビットの符号付き整数であるため、最大値は0x7FFFFFFFFFFFFFFFLLです。ただし、負またはゼロの行IDが明示的に入力されていない限り、自動生成された行IDは常にゼロより大きくなります。行IDが常に自動的に生成されることが確実な場合は、ゼロまたは-1がエラーステータスの戻り値として安全な値になります。

さらに考えてみるとsqlite3_last_insert_rowid、テーブルに何も挿入されていない場合、API呼び出しはゼロを返すため、ゼロは事実上の「無効な」行IDになります。

于 2012-01-23T02:53:18.767 に答える