【问题标题】:Select values from database function in pypika从 pypika 中的数据库函数中选择值
【发布时间】:2021-04-16 04:28:39
【问题描述】:

想知道如何从pypikapostgresql DBMS 中的存储函数中选择数据? 是否有任何功能或至少有可能运行自己的查询?比如select * from get_accounts(<account_id>)

搜索了这些并没有找到任何已解决的问题,没有找到从存储过程/函数中查询

【问题讨论】:

  • 这可能是Functionspypika 通常看起来相当有限。我会说你最好花时间使用psycopg2 并直接编写查询。

标签: python-3.x postgresql asyncpg pypika


【解决方案1】:

如果您想实现select * from get_accounts(<account_id>),您可以简单地将存储的函数调用定义为Function,并将其添加到from_ 子句中。如果您的 account_id 是例如 1,您可以这样做:

>>> from pypika import Query
>>> from pypika.terms import Function
>>> account_id = 1
>>> Query.from_(Function('get_accounts', account_id)).select("*")
'SELECT * FROM get_accounts(1)'

【讨论】:

  • 如何使用连接?我有 PostgreSQLQuery.from_(accounts).left_join(account_types) 和其他几个左连接,我需要将 get_account_funds 函数与它们连接起来,其中 account_id 作为参数
  • 我相信 PyPika 不支持以您想要的方式从函数中进行选择。您必须在 Github 上提出问题(或提交 PR)。这不会太难实现。
  • @Royalty 在阅读了您的 GitHub 问题后,我实际上想出了一个解决方案,请参阅我编辑的答案。文档/打字现在不支持它,但我可能会像这样(或非常相似)实现它。您能否验证这是否适用于您的用例?
猜你喜欢
  • 2013-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多