gpt4 book ai didi

python - 为什么start_transaction不设置事务隔离级别?

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

start_transaction mysql-connector-python 的 MySQLConnection 类的方法似乎没有按预期工作。

>>> from mysql.connector import connect
>>> conn = connect(user = 'john', unix_socket = '/tmp/mysql.sock', database='db7')
>>> cur = conn.cursor()
>>> cur.execute("select @@session.tx_isolation")
>>> cur.fetchone()
('REPEATABLE-READ',)
>>> cur.close()
True
>>> conn.start_transaction(isolation_level = 'SERIALIZABLE')
>>> cur = conn.cursor()
>>> cur.execute("select @@session.tx_isolation")
>>> cur.fetchone()
('REPEATABLE-READ',)

尽管在 start_transaction 调用中将隔离级别设置为“SERIALIZABLE”,但隔离级别仍然是 REPEATABLE-READ。我错过了什么吗?

最佳答案

SELECT TRX_ISOLATION_LEVEL
FROM information_schema.innodb_trx
WHERE TRX_MYSQL_THREAD_ID = CONNECTION_ID();

这应该为您提供当前事务的隔离级别。但是,除非您START TRANSACTION WITH CONSISTENT SNAPSHOT;,除非 InnoDB 看到您至少运行了一个查询,否则该事务不太可能出现在此处。

关于python - 为什么start_transaction不设置事务隔离级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34190470/

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