"last_insert_rowid()"に問題があります。"SELECT last_insert_rowid()"は常に "0"を返します
は私のDB-ヘルパークラスでは、私は次のことをやっている:
public int getLastID() {
final String MY_QUERY = "SELECT last_insert_rowid() FROM "+ DATABASE_TABLE5;
Cursor cur = mDb.rawQuery(MY_QUERY, null);
cur.moveToFirst();
int ID = cur.getInt(0);
cur.close();
return ID;
}
しかし、私は自分の意思でこれを呼び出すとき:
int ID = mDbHelper.getLastID();
Toast.makeText(this, "LastID: " + ID, Toast.LENGTH_SHORT).show();
私は戻って、常に "0" を得ます。それは私のDBに多くのエントリがあり、オートインクリメント値がはるかに高いはずです。
私は間違っていますか?
最後の挿入の直後に行IDを取得していますか?関数を理解しているので、最後の挿入と同じオープン接続を使用している場合にのみ、行IDを返します。 – JohnP
ああ、私はその機能を忘れてしまった。そうかもしれない。私がしたかったのは、テーブルの中で最も高いIDを取得することでした。これには別の機能がありますか? – venni
@JohnP - ありがとうございました。あなたのご意見はバグを見つけるのに役立ちました。 –