面试题答案
一键面试import sqlite3
try:
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
# 开启事务
conn.execute('BEGIN')
# 插入第一条记录
cursor.execute("INSERT INTO users (name) VALUES ('user1')")
# 插入第二条记录,假设这里会失败(如违反唯一约束等,此处仅为示例)
cursor.execute("INSERT INTO users (name) VALUES ('user2')")
# 提交事务
conn.execute('COMMIT')
print("两条记录插入成功")
except sqlite3.Error as e:
# 回滚事务
conn.execute('ROLLBACK')
print(f"插入过程中出现错误: {e}")
finally:
cursor.close()
conn.close()
上述代码中,使用sqlite3
模块进行数据库操作。首先连接到数据库,开启事务,执行两条插入语句,若第二条插入失败,捕获sqlite3.Error
异常并回滚事务,最后关闭游标和数据库连接。
注意:需确保users
表已存在,若不存在,可在连接数据库后先使用CREATE TABLE
语句创建:
cursor.execute('''CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT)''')