私はAndroidの初心者です。
に新しいIDを表示したいTextView
。したがって、データベースに格納されている最新のIDをInteger
取得し、取得した値に1を加算して宣言し、に表示することを考えますTextView
。
最新のIDの取得に関する質問の多くを読みました。どうすれば使用できますselect last_insert_rowid();
か?
ありがとう!
last_insert_rowid()
同じセッションで挿入されたレコードに対してのみ機能します。
列が として宣言されINTEGER PRIMARY KEY
ている場合、新しいレコードで値を指定しないと、SQLite は自動的にその値を生成します。
レコードを挿入する前に ID が本当に必要な場合は、次のように実行できます。
SELECT max(_id) FROM MyTable
自動インクリメントを使用する場合
SELECT * from SQLITE_SEQUENCE;
最新のIDを取得します。
Cursor c = database.rawQuery("SELECT last_insert_rowid()", null);
c.moveToFirst();
int id = c.getInt(0);
id += 1;
私も初心者なのでうまく説明できません。上記は、同じセッションから最後の挿入 ID を取得します。新しいセッションが開始された場合は機能しません。つまり、何かを挿入して接続を閉じてから再度開くと、0 が返されるため、TextView は常に 1 を表示するため、そのことに注意する必要があります。実装方法がわからないまま、それに関する多くの質問を読みました。上記のコードは、範囲外の例外を取得せずに使用する方法です。