根据官方样例运行后发现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))