我想做这样的事情:
async with app.pg_pool.acquire() as pg:
uid = await pg.execute('INSERT INTO users (created, keyed, key, email) '
'VALUES ($1, $2, $3, $4) RETURNING id',
time, time, key, rj['email'])['id']
然而,Connection.execute
似乎没有返回状态以外的任何内容:
问题可以用另外的措辞表示:如何在使用asyncpg时取回RETURNING
语句的响应?
答案 0 :(得分:1)
只需使用Connection.fetchval()代替execute()
。
答案 1 :(得分:0)
Connection.execute
将返回 INSERT 的状态。如果您需要记录、记录或值,请使用以下之一代替 Connection.execute
:
Connection.fetchval
- 仅返回指定字段的值。如果未指定字段,则返回 null
。Connection.fetch
- 将返回一个 dict
数组。每个 dict 都有在 RETURNING
语句之后指定的字段列表。Connection.fetchrow
- 将返回带有 dict
语句后指定的字段列表的 RETURNING