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.
SQLiteCAPIのラッパーを作成しています。そして、rowidを整数型として返したいです。エラーケースをマークするには、ROWIDの無効な値が必要です。SQLiteのROWIDの無効な値はありますか?または、符号付き64ビット整数のすべての値がROWIDに有効ですか?(そうであれば、マーキングエラーの場合を実装する別の方法を選択する必要があるため)
行IDは64ビットの符号付き整数であるため、最大値は0x7FFFFFFFFFFFFFFFLLです。ただし、負またはゼロの行IDが明示的に入力されていない限り、自動生成された行IDは常にゼロより大きくなります。行IDが常に自動的に生成されることが確実な場合は、ゼロまたは-1がエラーステータスの戻り値として安全な値になります。
さらに考えてみるとsqlite3_last_insert_rowid、テーブルに何も挿入されていない場合、API呼び出しはゼロを返すため、ゼロは事実上の「無効な」行IDになります。
sqlite3_last_insert_rowid