乐闻世界logo
搜索文章和话题

How to retrieve inserted id after inserting row in SQLite using Python?

1 个月前提问
1 个月前修改
浏览次数6

1个答案

1

在Python中使用SQLite数据库时,我们通常使用sqlite3库来执行数据库操作。当我们插入一行到数据库中后,我们可能想要获得那个新插入行的ID(假设这个表有一个自增的主键)。这可以通过使用lastrowid属性来实现。我将通过一个具体的例子来说明这一过程。

假设我们有一个数据库example.db,其中有一个表users,表结构如下:

sql
CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER );

在这个表中,id是自动增长的主键。

首先,我们需要连接到SQLite数据库,并创建一个游标对象用于执行SQL语句:

python
import sqlite3 # 连接到SQLite数据库 conn = sqlite3.connect('example.db') cursor = conn.cursor()

接下来,我们可以插入一行到users表中,并使用lastrowid来获取新插入行的ID:

python
# 插入一行到 users 表 cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 30)) # 提交事务 conn.commit() # 获取插入行的ID inserted_id = cursor.lastrowid print("插入的行的ID是:", inserted_id)

在这个例子中,我们向users表新增了一个名为Alice、年龄为30的用户。执行插入操作后,我们使用cursor.lastrowid属性来获取刚刚插入行的ID。这是一个很方便的方式来追踪新数据的ID,特别是在有关联数据需要插入到其他表时非常有用。

最后,别忘了关闭游标和连接:

python
# 关闭游标和连接 cursor.close() conn.close()

通过这个流程,你可以有效地在使用Python操作SQLite数据库时插入数据并获取新插入行的ID。这对于处理数据库中的关系数据非常重要,可以帮助你维护数据的完整性和一致性。

2024年8月14日 14:11 回复

你的答案