SQLite3 and lastrowid
fuglyducky
fuglyducky at gmail.com
Tue Nov 16 16:08:15 EST 2010
On Nov 16, 12:54 pm, Ian <ian.g.ke... at gmail.com> wrote:
> On Nov 16, 1:00 pm, fuglyducky <fuglydu... at gmail.com> wrote:
>
> > Before I added the second table I could simply run
> > 'print(cursor.lastrowid)' and it would give me the id number. However,
> > with two tables I am unable to do this.
>
> It would help if you would show the code where you're trying to do
> this. Without your actual code to look at, we can't tell you why it
> doesn't work.
>
> > Does anyone know if there is a way to reference one table or another
> > to get lastrowid?
>
> cursor.lastrowid is always in reference to the last query executed by
> the cursor, not in reference to a table. If you don't capture the
> value, and then you execute another query on the same cursor, the
> previous value of cursor.lastrowid no longer exists. If you need it
> now, then either you should have captured it when you had the chance,
> or you should not have executed another query on the same cursor.
>
> But perhaps this is not what you're actually trying to do. I can't
> tell, because I haven't seen the code.
>
> Cheers,
> Ian
Thanks for the input. Sorry...I should have included the code...it's
just a simple query...
#####################################################
import sqlite3
import random
db_connect = sqlite3.connect('test.db')
cursor = db_connect.cursor()
print(cursor.lastrowid)
# Choose random index from DB - need to understand lastrowid
#row_count = cursor.lastrowid
#random_row = random.randrange(0, row_count)
cursor.execute("SELECT * FROM table1 WHERE id = 2002")
print(cursor.fetchmany())
#for row in cursor:
# print(row)
db_connect.commit()
cursor.close()
#####################################################
More information about the Python-list
mailing list