मुझे "last_insert_rowid()" में कोई समस्या है।"SELECT last_insert_rowid()" हमेशा देता है "0"
मेरी डीबी हेल्पर-क्लास में मैं निम्नलिखित कर रहा हूँ:
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"। ऐसा नहीं हो सकता है, क्योंकि मेरे डीबी में बहुत सी प्रविष्टियां हैं और ऑटोइनक्रिकमेंट मान बहुत अधिक होना चाहिए।
मैं क्या गलत कर रहा हूं?
क्या आप अपनी अंतिम प्रविष्टि के तुरंत बाद पंक्ति आईडी प्राप्त कर रहे हैं? जैसा कि मैं फ़ंक्शन को समझता हूं, यह केवल एक पंक्ति आईडी लौटाएगा यदि आप अपने अंतिम सम्मिलन के समान खुले कनेक्शन का उपयोग कर रहे हैं। – JohnP
ओह, मैंने फ़ंक्शन को गलत समझा। यह हो सकता है। मैं जो करना चाहता था वह तालिका में उच्चतम आईडी प्राप्त करना है। क्या इसके लिए कोई और काम है? – venni
@ जॉन - धन्यवाद, आपकी टिप्पणी ने मुझे एक बग का पता लगाने में मदद की। –