我运行了一个程序,将相当简单的记录添加到mariaDB数据库表中。自从我添加了以下代码后:
connection.autocommit = True
我添加的新数据在phpymadmin中不再可见。我仍然可以通过程序与所述数据交互,但是Phpmyadmin中的记录计数从未增加,并且我无法在其中找到数据。旧数据也仍然存在
我使用autocommit是因为我认为它是一个绕过需要在代码中分别手动提交每个查询的过程的函数,但它可能比我意识到的做得更多
有没有办法在Phpmyadmin中显示新记录,以便我可以再次与它们交互
编辑:
我逐渐意识到这一点
connection.autocommit = True
是正确的代码,但我试图在光标上执行它,而不是在连接上。对于阅读本文的任何人,请确保不要尝试将cursor.autocommit设置为True
您需要
connection.autocommit(True)
进行自动提交或者,在创建连接时指定它
你所描述的行为是当你没有做出承诺时发生的事情
如果您不想使用autocommit,可以在执行一系列INSERT/UPDATE/DELETE操作后执行此操作:
connection.commit()
然后,其他MySQL连接(如您的phpmyadmin)将能够看到新数据或者,如果您决定不想提交您的操作,您可以执行
connection.rollback()
在Python的MySQL API中,除非打开自动提交,否则它是关闭的
请注意,未提交的数据并不像您所说的那样存储在程序中。它在MySQL中,并且对放置它的连接可见。其他MySQL连接无法看到它
请研究这个:https://dev.mysql.com/doc/refman/8.0/en/commit.html它将帮助您了解正在发生的事情。关键是允许您更改数据库中的多个行,以便它们看起来可以同时更改为其他程序
相关问题 更多 >
编程相关推荐