pymysql.err.IntegrityError: (1062, "Duplicate entry……用python except捕获此异常
时间: 2024-12-02 07:22:07 浏览: 0
在Python中使用pymysql库处理MySQL数据库时,如果遇到IntegrityError(1062),即数据完整性错误,通常是由于试图插入的数据违反了表中的唯一性约束。例如,如果你在创建用户表时指定了用户名列是唯一的,而两次尝试插入相同的用户名就会引发这个异常。
在Python代码中,你可以使用try-except结构来捕获这种异常,如下所示:
```python
import pymysql
try:
# 连接到MySQL服务器并执行可能会抛出1062异常的查询
connection = pymysql.connect(host='localhost', user='username', password='password', db='database')
cursor = connection.cursor()
cursor.execute("INSERT INTO users (username) VALUES ('test_username')")
except pymysql.err.IntegrityError as e:
if str(e).startswith('1062'):
print("Duplicate entry found, skipping insertion.")
else:
# 如果不是1062错误,捕获其他类型的IntegrityError
raise
finally:
# 关闭连接,无论是否发生异常
cursor.close()
connection.close()
```
在这个例子中,如果插入操作失败并抛出IntegrityError,程序会捕获到异常,检查错误信息是否包含"1062",如果是,则打印提示并跳过插入;如果不是1062错误,就直接让异常继续传播。
阅读全文