You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 18:18:14