gpt4 book ai didi

python mysqldb,for循环不删除记录

转载 作者:行者123 更新时间:2023-11-29 06:11:58 24 4
gpt4 key购买 nike

这里有一个问题。 http://paste.pocoo.org/show/528559/

第 32 行和第 37 行之间的某个位置。如您所见,DELETE FROM 位于 for 循环内。

运行脚本只是让程序执行循环并退出,而不实际删除任何记录。

任何帮助将不胜感激!谢谢!

#!/usr/bin/env python
# encoding: utf-8

import os, os.path, MySQLdb, pprint, string

class MySQLclass(object):
"""Learning Classes"""
def __init__(self, db):
self.db=db
self.cursor = self.db.cursor()

def sversion(self):
self.cursor.execute ("SELECT VERSION()")
row = self.cursor.fetchone ()
server_version = "server version:", row[0]
return server_version

def getRows(self, tbl):
""" Returns the content of the table tbl """
statmt="select * from %s" % tbl
self.cursor.execute(statmt)
rows=list(self.cursor.fetchall())
return rows

def getEmailRows(self, tbl):
""" Returns the content of the table tbl """
statmt="select email from %s" % tbl
self.cursor.execute(statmt)
rows=list(self.cursor.fetchall())
return rows

def removeRow(self,tbl,record):
""" Remove specific record """
print "Removing %s from table %s" %(record,tbl)
print tbl

self.cursor.execute ("""DELETE FROM maillist_frogs where email LIKE %s""", (record,))


def main():

#####connections removed

sql_frogs = MySQLclass(conn_frogs)
sql_mailgust = MySQLclass(conn_mailgust)

frogs_emails = sql_frogs.getEmailRows ("emails")
frogs_systemcatch = sql_frogs.getEmailRows ("systemcatch")
mailgust_emails = sql_mailgust.getEmailRows ("maillist_frogs")


aa = set(mailgust_emails)
remove = aa.intersection(frogs_emails)
remove = remove.union(aa.intersection(frogs_systemcatch))

for x in remove:
x= x[0]
remove_mailgust = sql_mailgust.removeRow ("maillist_frogs",x)

conn_frogs.close ()
conn_mailgust.close ()

if __name__ == '__main__':
main()

最佳答案

问题是 python-msyqldb 特定的。:

从 1.2.0 开始,MySQLdb 按照 DB-API 标准 (PEP-249) 的要求默认禁用自动提交。如果您使用 InnoDB 表或某些其他类型的事务表类型,则需要在关闭连接之前执行 connection.commit() ,否则您的任何更改都不会写入数据库。

因此,DELETE后,必须self.db.commit

关于python mysqldb,for循环不删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8695457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com