Python MySQL-选择有效,但不能删除?

我是PythonPython的MySQL适配器的新手.我不确定在这里是否缺少明显的东西:

db = MySQLdb.connect(# db details omitted)
cursor = self.db.cursor()

# WORKS
cursor.execute("SELECT site_id FROM users WHERE username=%s", (username))
record = cursor.fetchone()

# DOES NOT SEEM TO WORK
cursor.execute("DELETE FROM users WHERE username=%s", (username))

有任何想法吗?

最佳答案
我猜您正在使用支持事务的存储引擎(例如InnoDB),但是在DELETE之后您没有调用db.commit().如果您不提交,则DELETE的效果将被丢弃.

查看http://mysql-python.sourceforge.net/FAQ.html#my-data-disappeared-or-won-t-go-away

Starting with 1.2.0, MySQLdb disables
autocommit by default, as required by
the DB-API standard (PEP-249). If you
are using InnoDB tables or some other
type of transactional table type,
you’ll need to do connection.commit()
before closing the connection, or else
none of your changes will be written
to the database.

另请参阅类似的SO问题:Python MySQLdb update query fails

转载注明原文:Python MySQL-选择有效,但不能删除? - 代码日志