SQLite3 and lastrowid

Dan M dan at catfolks.net
Tue Nov 16 16:12:14 EST 2010


On Tue, 16 Nov 2010 13:08:15 -0800, fuglyducky wrote:

> 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())

Perhaps insert here:
cursor.execute("SELECT count() from table2")
table2lastRow = cursor.lastrowid()

> 
> #for row in cursor:
>  #   print(row)
> 
> 
> db_connect.commit()
> cursor.close()
> 
> #####################################################




More information about the Python-list mailing list