3

我正在尝试使用 MySQLdb 模块删除数据库中的记录。在https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.html中,我发现multi=True在执行中执行了多个查询,但它会产生错误。有人可以帮助我知道我缺少什么吗?

query = "DELETE FROM Service_Machine WHERE Id=(SELECT Id FROM Machines WHERE Id="+id+");" \
        "DELETE FROM Machine_Usage WHERE Id=(SELECT Id FROM Machines WHERE Id="+id+");" \
        "DELETE FROM Machines WHERE Id="+id+");
print(query)
self.cursor.execute(query, multi=True)
4

3 回答 3

6

MySQLdb并且 mysql-connector是用于 Python 的两个独立的 MySQL 数据库适配器。

这两个适配器都符合DB API 规范版本 2.0multi关键字参数不是标准 DB API 的一部分,也不是' MySQLdbs API 的一部分。

只有mysql-connector'execute方法multi关键字参数。

于 2016-06-09T20:09:49.057 回答
0

请改用以下方法

try:
    cur.execute(query1)
    cur.execute(query2)
    cur.execute(query150)
    con.commit()
except Exception as e:
    con.rollback()
于 2018-06-04T19:04:29.287 回答
0

尝试这个:

InSql1 = "DELETE FROM Service_Machine WHERE Id=(SELECT Id FROM Machines WHERE Id="+id+");" 
InSql2 = "DELETE FROM Machine_Usage WHERE Id=(SELECT Id FROM Machines WHERE Id="+id+");" 
InSql3 =  "DELETE FROM Machines WHERE Id="+id+");
#print(query)

self.cursor.execute(InSql1)
self.cursor.execute(InSql2)
self.cursor.execute(InSql3)
self.cursor.execute("Commit;")
于 2016-06-10T07:03:59.357 回答