[issue46249] [sqlite3] move set lastrowid out of the query loop and enable it for executemany()

Erlend E. Aasland report at bugs.python.org
Tue Jan 11 15:30:03 EST 2022


Erlend E. Aasland <erlend.aasland at innova.no> added the comment:

> You don't know on which cursor the last row was inserted [...]

SQLite has no concept of cursors :)

> It also seems that the function really only works for INSERTs and
> not for UPDATEs.

Yes, hence it's name: sqlite3_last_insert_rowid() !

> I'd suggest to deprecate the cursor.lastrowid attribute and
> instead point people to the much more useful [...]

Yes, I think mentioning the RETURNING ROWID trick in the sqlite3 docs is a very nice improvement. Mentioning the last_insert_rowid SQL function is probably also worth consideration.

I'm reluctant to deprecate cursor.lastrowid, though. ATM, I'm leaning towards just keeping the current behaviour.

> But this is your call :-)

I hear you are saying that, but strictly speaking I'm _not_ the sqlite3 module maintainer; I'm just a very eager contributor :)

----------

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue46249>
_______________________________________


More information about the Python-bugs-list mailing list