aiomysql如何开启事务
时间: 2023-05-11 07:01:50 浏览: 93
要开启aiomysql的事务,需要使用connection对象的begin()方法。具体代码如下:
```
import aiomysql
async def transaction_example():
conn = await aiomysql.connect(host='localhost', port=3306,
user='root', password='password',
db='test', autocommit=False)
async with conn.cursor() as cur:
await cur.execute("CREATE TABLE IF NOT EXISTS test_table (id INT PRIMARY KEY, name VARCHAR(255))")
await conn.begin()
try:
await cur.execute("INSERT INTO test_table (id, name) VALUES (1, 'test')")
await cur.execute("INSERT INTO test_table (id, name) VALUES (2, 'test2')")
await conn.commit()
except:
await conn.rollback()
conn.close()
```
在这个例子中,我们首先使用aiomysql.connect()方法连接到数据库,然后使用autocommit=False参数来禁用自动提交。接着,我们使用connection对象的begin()方法来开启事务。在try语句块中,我们执行了两个INSERT语句,然后使用connection对象的commit()方法来提交事务。如果在try语句块中发生了异常,我们使用connection对象的rollback()方法来回滚事务。最后,我们关闭了连接。