第 17 章 · 第三节 · 课件第 42、43、45、46、47、48、49、50 页合并重做
插入数据
执行 INSERT,全部成功才 commit。
插入数据
示例 1:把王天一、苏红霞、林勇、李玉四位同学的信息插入学生表 s。
| sno | sn | sex | age | maj | dept |
|---|---|---|---|---|---|
| s9 | 王天一 | 女 | 18 | 计算机 | 信息学院 |
| s10 | 苏红霞 | 女 | 20 | 信息 | 信息学院 |
| s11 | 林勇 | 男 | 19 | 信息 | 信息学院 |
| s12 | 李玉 | 女 | 21 | 自动化 | 工学院 |
sqls = [
"INSERT INTO s VALUES ('s9', …)",
"INSERT INTO s VALUES ('s10', …)",
…
]
try:
for sql in sqls:
cursor.execute(sql)
db.commit()
except mysql.connector.Error:
db.rollback()
finally:
cursor.close()
db.close()- 四条语句在同一个事务中,全部成功才提交
- 某一条出错,rollback 撤销前面已经执行的语句
- 有一个学号已经存在时报错 1062,四个人都不会插入
- finally 中的语句不论是否出错都执行,关闭游标和连接写在这里
