我想在pymysql下使用mysql脚本以下运行。
START TRANSACTION;
BEGIN;
insert into ~~~
COMMIT;
我的python源代码是
connection = pymysql.connect(~~~~~~~)
with connection.cursor() as cursor :
connection.begin()
cursor.execute(~~.sql)
connection.commit()
connection.close()
我的问题是" connection.begin()"是同样的事情" START TRANSACTION; BEGIN;" ?我想使用" START TRANSACTION; BEGIN;"
答案 0 :(得分:1)
根据PyMySQL docs/example(单数...这似乎不是一个支持得很好的包),默认情况下自动提交已关闭,因此您需要运行connection.commit()
实际上完成了交易。
他们的例子:
import pymysql.cursors
connection = pymysql.connect(host='localhost',
user='user',
password='passwd',
db='db',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
# connection is not autocommit by default. So you must commit to save changes.
connection.commit()
finally:
connection.close()
答案 1 :(得分:0)
pymysql.connections.Connection.begin
查看manual了解更多信息