asyncpg(池连接)在失败的情况下是否会自动回滚执行命令?
创始人
2024-09-21 08:30:11
0

在asyncpg中,如果使用with语句创建池连接,则该连接在with语句结束时自动释放,并自动提交或回滚事务(取决于with语句块中的操作是否成功)。如果在with语句块中发生错误,则连接将回滚所有已执行的操作。下面是使用with语句进行数据库事务的示例代码:

import asyncio
import asyncpg

async def main():
    # 创建池连接
    pool = await asyncpg.create_pool(database='my_db', user='my_user', password='my_password')

    # with语句块中执行数据库操作
    async with pool.acquire() as connection:
        async with connection.transaction():
            await connection.execute('''CREATE TABLE users (
                id serial PRIMARY KEY,
                name varchar(100) NOT NULL,
                age int
            );''')

            await connection.execute('''INSERT INTO users (name, age) VALUES ($1, $2)''', 'Alice', 25)
            await connection.execute('''INSERT INTO users (name, age) VALUES ($1, $2)''', 'Bob', 'not a number')

asyncio.run(main())

在上面的示例代码中,如果第二个INSERT语句出现错误,所有已执行的操作都将回滚,包括第一个INSERT语句和CREATE TABLE语句。

相关内容

热门资讯

wepoke透明挂黑科技!德州... 1、wepoke透明挂黑科技!德州wepower透视辅助(透明挂)we poker(其实真的有挂)(...
玩家实测!逍遥卡五星胡牌辅助器... 玩家实测!逍遥卡五星胡牌辅助器(辅助挂)原来是真的有挂(2022已更新)(哔哩哔哩);小薇(透视辅助...
微扑克ai机器人!微扑克有挂,... 微扑克ai机器人!微扑克有挂,微扑克有后台控制(原来真的是有挂),亲,有的,ai轻松简单,又可以获得...
wepoke辅助机器人!wep... WePoker透视辅助工具核心要点解析‌,wepoke辅助机器人!wepower软件靠谱,wePOK...
大神推荐!钱塘十三水辅助(透视... 大神推荐!钱塘十三水辅助(透视辅助)本来真的有挂(2023已更新)(哔哩哔哩)1、钱塘十三水辅助系统...
微扑克游戏辅助器!微扑克有挂,... 微扑克游戏辅助器!微扑克有挂,微扑克网页版辅助(一直是真的有挂)是一款可以让一直输的玩家,快速成为一...
WePoKe外 挂!wepok... 这是一款非常优秀的WepokE ia辅助检测软件,能够让你了解到WepokE中牌率当中全部隐藏参数,...
重大来袭!指尖跑得快能控制输赢... 重大来袭!指尖跑得快能控制输赢吗(辅助)一贯真的有挂(2020已更新)(哔哩哔哩);1、进入游戏-大...
微扑克辅助软件!微扑克有脚本(... 微扑克辅助软件!微扑克有脚本(透视)好像真的是有挂是一款可以让一直输的玩家,快速成为一个“必胜”的a...
wepoke黑科技!wepko... wepoke黑科技!wepkoe有外 挂,we辅助poker就是真的有挂,高科技教程(有挂解密)1、...