sql - 在taipy中的 `read_query`中使用动态 `configure_sql_data_node()`

标签 sql taipy

我们想使用configure_sql_data_node()其中read_query参数将是动态的,从某种意义上说,我们将从数据节点获取一些数据并使用该数据来构造查询。例如,您的值是 month查询将是 python f"SELECT * from mytable where MONTH={month}"这样 month 的值在查询中使用。看来read_query参数必须是静态字符串。

我们如何进行 SQLDataNode 中使用的查询是动态的并且依赖于其他数据吗?

最佳答案

如果是输入数据节点,您可以在提交场景之前更改查询:

scenario = tp.create_scenario(sc_config)
scenario.month.write("JAN")
scenario.month_data.read_query = f"SELECT * from mytable where MONTH={scenario.month.read()}"
scenario.submit()

您能描述一下您的用例吗?您的 SQL 数据节点是输入数据节点吗?它能解决您的问题吗?

如果不是输入,情况会更复杂。 我们可以向 Taipy 中的 SQL 数据节点添加功能。类似于 write_query_builder 的东西。一个名为 read_query_builder 的新属性。该构建器将是在读取数据以构建查询之前在运行时执行的函数。您还需要在运行时更改它。

scenario = tp.create_scenario(sc_config)
def scenario_read_query_builder(scenario):
     return f"SELECT * from mytable where MONTH={scenario.month.read()}"
scenario.month_data.read_query_builder = scenario_read_query_builder
scenario.submit()
scenario.month_data.read()

复杂性来自于这样一个事实:该查询生成器必须具有通用签名,因为它是由 Taipy 协调器自动调用的。另外,它必须是可序列化的,所以我们不能在这里真正使用部分。

关于sql - 在taipy中的 `read_query`中使用动态 `configure_sql_data_node()`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76327212/

相关文章:

sql - PostgreSQL 按行聚合 JSON 记录集键

sql - 执行计划不如预期

python - 对特定按钮视觉效果进行故障排除 : How to Modify Individual Buttons Using CSS in Taipy

pandas - 在 Taipy 中创建 3D 散点图

python - 在 Taipy 中创建用户友好的链接选择器 : How to Display a List of Links in a Selector

mysql - 在 MySQL 选择查询中有条件地设置列的值

mysql - 创建触发器期间出现错误 1064

mysql - 合并两个表中选定的列并将其存储在数据库中的另一个表中