【发布时间】:2020-05-06 09:29:23
【问题描述】:
我在我的 fastapi 应用程序中使用 databases 包。 databases有execute和fetch函数,当我尝试使用execute插入或更新后返回列值时,它只返回第一个值,如何在不使用fetch的情况下获取所有值..
这是我的查询
INSERT INTO 表(col1、col2、col3、col4) 值 (val1, val2, val3, val4) 返回 col1, col2;
【问题讨论】:
我在我的 fastapi 应用程序中使用 databases 包。 databases有execute和fetch函数,当我尝试使用execute插入或更新后返回列值时,它只返回第一个值,如何在不使用fetch的情况下获取所有值..
这是我的查询
INSERT INTO 表(col1、col2、col3、col4) 值 (val1, val2, val3, val4) 返回 col1, col2;
【问题讨论】:
INSERT INTO table (col1, col2, col3, col4) VALUES (val1, val2, val3, val4) RETURNING (col1, col2);
您可以使用此查询来获取所有列
【讨论】:
您可以使用参数为offset = 0和limit = None的查询方法来获取所有列
db.query({YOUR TABLE OBJECT}).offset(0).limit(None).all()
您可以参考此链接了解更多信息: https://fastapi.tiangolo.com/tutorial/sql-databases/
如果您使用的是 mypy,那么您必须告诉解释器限制值可以是无
from typing import Optional
limit: Optional[int] = None
【讨论】:
我也遇到了麻烦,这是我的问题:
INSERT INTO notes (text, completed) VALUES (:text, :completed) RETURNING notes.id, notes.text, notes.completed
使用database.execute(...) 只会返回第一列。
但是.. 使用database.fetch_one(...) 插入数据并返回所有列。
希望对你有帮助
【讨论】: