Python操作MySQL无法删除数据行问题求助
解决MySQL删除操作无效的问题
你的代码里有几个关键问题,导致删除操作没生效:
- 提交事务的对象错误:你写的
mysql.commit()是错的,应该用数据库连接对象mydb.commit()。mysql是你导入的模块,它没有commit方法,这行代码会直接抛出异常,根本没执行到提交步骤。 - 错误尝试用
%d占位符:MySQL Connector/Python里,不管字段是整数还是字符串,统一用%s作为参数占位符,%d是错误的用法,别再用它。
另外,你还可以加一些检查步骤,确认操作是否生效:
- 执行删除后,用
mycursor.rowcount查看实际影响的行数,确认是否有匹配的记录被删除 - 确认
workers表中确实存在id=1的记录 - 检查当前数据库用户是否拥有
DELETE权限
修正后的代码:
import mysql.connector # 建立数据库连接 mydb = mysql.connector.connect(host="localhost", user="user", passwd="1", database="workers") mycursor = mydb.cursor() # 注意占位符用%s,不管字段类型 query = "DELETE FROM `workers` WHERE id = %s" # 执行删除,参数是元组(注意逗号不能少) mycursor.execute(query, (1,)) # 提交事务,用连接对象mydb mydb.commit() # 检查影响行数 print(mycursor.rowcount, "条记录被删除") # 关闭资源 mycursor.close() mydb.close()
内容的提问来源于stack exchange,提问作者A D
相关产品推荐
相关产品推荐

