使用aiomysql insert数据后没提交

根据官方样例运行后发现insert的数据并没有存到数据库中

开始操作的时候加上这句

tx = await conn.begin()

结束的时候加上这句

await tx.commit()

完整代码如下

import asyncio
import sqlalchemy as sa

from aiomysql.sa import create_engine, SAConnection

metadata = sa.MetaData()

user = sa.Table('user', metadata,
               sa.Column('ID', sa.String(255), primary_key=True),
               sa.Column('Name', sa.String(255))
               )

async def go(loop):
    engine = await create_engine(host='127.0.0.1', db='dbName',
                                    user='root', password='123456', loop=loop)
    async with engine.acquire() as conn:

        tx = await conn.begin()
        await conn.execute(user.insert().values(ID = "001", Name = "001_name"))
        await conn.execute(user.insert().values(ID = "002", Name = "002_name"))

        async for row in conn.execute(user.select()):
            print(row.ID, row.Name)
        #提交
        await tx.commit()

    engine.terminate()
    engine.close()
    await engine.wait_closed()


loop = asyncio.get_event_loop()
loop.run_until_complete(go(loop))

你可能感兴趣的:(python)