SQLite データベースから NOT NULL レコードの数を取得したいと考えています。自動インクリメントを使用しているため、最後に挿入された行では、テーブル内の実際のレコード数が得られません。中間のレコードを削除しても、最後に挿入されたレコードよりも上の位置に挿入されます。
挿入ステートメントは、最後に挿入された行の数を返しますが、この値はその場で必要です。
テーブルの前にカウントを行うとうまくいくはずです。NOT NULL の where チェックを使用して id 列をクエリし、返されたカーソルでgetCount()
念のために言っておきますが、生産的なデータベースで自動インクリメントを操作することは絶対に絶対にしてはいけません。レコードを削除した場合、「ギャップ」はそこにとどまるはずです。パフォーマンスやその他の影響はありません。その隙間に新しいレコードを差し込むと、大変なことになります…。
行数を知りたいだけですか?(私が知る限り、「ヌル レコード」などというものはありません。)
するだけじゃないの?
select count(1) from YourTableName
また
select count(*) from YourTableName
? (一部のデータベースは、何らかのフォームを使用した方が高速です... sqlite については知りません。)