cursor.lastrowid를 사용할 수 있습니다 ( "선택적 DB API 확장"참조).
connection=sqlite3.connect(':memory:')
cursor=connection.cursor()
cursor.execute('''CREATE TABLE foo (id integer primary key autoincrement ,
username varchar(50),
password varchar(50))''')
cursor.execute('INSERT INTO foo (username,password) VALUES (?,?)',
('test','test'))
print(cursor.lastrowid)
# 1
두 사람이 서로 다른 cursor
s를 사용 하는 한 동시에 삽입 하는 경우 삽입 한 마지막 행에 대해 cursor.lastrowid
를 반환합니다 .id
cursor
cursor.execute('INSERT INTO foo (username,password) VALUES (?,?)',
('blah','blah'))
cursor2=connection.cursor()
cursor2.execute('INSERT INTO foo (username,password) VALUES (?,?)',
('blah','blah'))
print(cursor2.lastrowid)
# 3
print(cursor.lastrowid)
# 2
cursor.execute('INSERT INTO foo (id,username,password) VALUES (?,?,?)',
(100,'blah','blah'))
print(cursor.lastrowid)
# 100
다음 을 사용하여 한 번에 둘 이상의 행을 삽입하면 lastrowid
반환 None
됩니다 executemany
.
cursor.executemany('INSERT INTO foo (username,password) VALUES (?,?)',
(('baz','bar'),('bing','bop')))
print(cursor.lastrowid)
# None