Supabase动态RPC函数

2023-12-12

我希望创建一个 RPC 来获取列的不同值,但我将在多个表中执行此操作,并且我不想为每个列和每个表一遍又一遍地编写此函数。我有以下 SQL 语句可以满足我的需要:

SELECT owner
FROM customers 
GROUP BY owner 
ORDER BY owner Asc;

我想制作业主和客户参数。我了解如何在 RPC 中添加“参数”,但我不确定如何将它们用作上述问题的列/表。

enter image description here

有谁知道如何在supabase函数中处理这个问题?

奖金问题:

我将如何去做这个加入?我根据接受的答案有以下内容,但失败了'column "customers.owner_id" does not exist'我已经对这个函数进行了硬编码,它按预期工作,只是不使用下面的参数化版本:

CREATE OR REPLACE FUNCTION fetch_autocomplete_options(
  table_name text,
  join_table_name text,
  join_column_name text,
  table_column_name text,
  join_table_column_name text
)
RETURNS TABLE ( value text) AS 
$BODY$
  BEGIN
      RETURN QUERY EXECUTE format(
        'SELECT DISTINCT %I::text FROM %I INNER JOIN %I ON %I=%I ORDER BY %I ASC;',
        join_column_name, table_name, join_table_name, table_column_name, join_table_column_name, join_column_name
      );
  END;
$BODY$
LANGUAGE plpgsql;

弄清楚了!!!这是为了以防万一有人遇到这个奖金问题:

CREATE OR REPLACE FUNCTION fetch_autocomplete_options(
  table_name text,
  join_table_name text,
  join_column_name text,
  table_column_name text,
  join_table_column_name text
)
RETURNS TABLE ( value text) AS 
$BODY$
  BEGIN
      RETURN QUERY EXECUTE format(
        'SELECT DISTINCT j.%I::text FROM %I as t INNER JOIN %I as j ON t.%I::text = j.%I::text ORDER BY j.%I::text ASC;',
        join_column_name, table_name, join_table_name, table_column_name, join_table_column_name, join_column_name
      );
  END;
$BODY$
LANGUAGE plpgsql;

您可以使用 postgres 创建动态 RPCS,但如果列的类型是可变的,那么您可能需要将它们转换为文本(::text):

CREATE OR REPLACE FUNCTION get_distict(tname text, cname text)
RETURNS TABLE ( distinct_values text) AS 
$BODY$
  BEGIN
      RETURN QUERY EXECUTE format(
        'SELECT %I::text FROM %I GROUP BY %I ORDER BY %I ASC;',
                                       cname,   tname,    cname, came
      );
  END;
$BODY$
LANGUAGE plpgsql;

然后,您可以像这样调用这个动态函数:

select get_distict('customers','owner');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Supabase动态RPC函数 的相关文章

  • 跨多个表进行搜索,并在结果行中显示表名称

    如何构建 SQL 语句以跨多个平面不相关的表运行 并使用选择结果和结果来自的表的名称显示结果 这种情况是这样的 我有几个表 每个表都有相同的列名 这是我从外部各方收到的数据 并将其存储在不同的表中 相同的表看起来像 Table 1 pid
  • 为什么 SqlClient 在传递 SqlXml 时使用不必要的 XML 转换?

    我有一个关于从 C 代码将 xml 数据类型传递给查询的问题 首先 这是 SQL Server 上的一个表 CREATE TABLE dbo XmlTable id int IDENTITY 1 1 NOT NULL dat xml NOT
  • 如何将表中不存在但原始SQL中存在的实体字段设置为别名?

    假设我们有一个这样的查询 SELECT CUSTOM EXPRESSION as virtualfield FROM users 用户的实体本身具有 虚拟字段 但映射注释没有 因为表没有该字段 假设它作为原始 SQL 执行 我们如何使用上面
  • 月份增量查询

    我想通过添加 1 个月来更新数据库中的月份 但我不知道如何在以下存储过程查询中添加月份 我不擅长 sql 请检查它 ALTER PROCEDURE dbo ChangePassword password varchar 20 epasswo
  • 计算运行总计时出错(之前期间的累计)

    我有一张桌子 我们称之为My Table有一个Created日期时间列 在 SQL Server 中 我试图提取一个报告 该报告显示历史上有多少行My Table按月在特定时间 现在我知道我可以显示有多少added每个月 SELECT YE
  • 执行带有 EXCEPTION 的 PostgreSQL 查询会导致两条不同的错误消息

    我有一个 PostgreSQL 查询 其中包含事务和列重复时的异常 BEGIN ALTER TABLE public cars ADD COLUMN top speed text EXCEPTION WHEN duplicate colum
  • SQL Server 上的语法错误

    这可能是一个愚蠢的语法错误 但我只是继续阅读我的程序 但我无法弄清楚我的错误在哪里 消息 156 第 15 级 状态 1 第 41 行关键字附近的语法不正确 为了 这是我的代码 alter procedure LockReservation
  • date_sub 对于 mysql 可以,对于 postgresql 可以

    此查询适用于 mySQL 不适用于 Postgresql select from where id and h gt date sub now INTERVAL 30 MINUTE 错误是 Query failed ERREUR erreu
  • 如何查找当前数据库类型

    我们有一个 SQL 脚本可以在多种类型的数据库上执行 是否可以获取正在执行 SQL 脚本的当前数据库的类型 注意 我们不能使用非标准 SQL 即 TSQL 等 不 ANSI SQL 中没有任何关于确定数据库供应商的内容
  • 有没有办法阻止 SQL Express 2008 空闲?

    我使用 SQL Express 2008 作为 Web 应用程序的后端 问题是 Web 应用程序是在工作时间使用的 因此有时在午餐或休息时间 如果 20 分钟内没有用户登录 SQL Express 将进入空闲状态模式并释放其缓存 我知道这一
  • Postgresql 一张表的多个计数

    我想从表中的两列中获得这些列中值的统一计数 例如 两列是 表 报告 type place one home two school three work four cafe five friends six mall one work one
  • 通过 osql.exe 运行脚本时出现问题

    我尝试以这种格式运行我的软件的更新脚本 osql exe i path to script U 用户 P 密码 S sqlserver 位置 d 数据库名称 n b 大多数脚本的格式相同 并且都以 GO 结尾 其中很多都运行得很好 但随机脚
  • 检查两个“select”是否相等

    有没有办法检查两个 非平凡的 选择是否等效 最初我希望两个选择之间有形式上的等价 但是答案在证明 sql 查询等价性 https stackoverflow com questions 56895 proving sql query equ
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • sql查询获取从一月到当月的所有数据,即使没有记录

    我不擅长 sql 所以任何帮助世界都很棒 我有一个 SQL 查询 可以获取从一月到当月注册的记录 我的代码示例 SELECT DatePart YEAR p createStamp as TheYear DatePart MONTH p c
  • Reporting Services 在哪里存储其日志文件

    最相关的谷歌结果似乎表明 为了访问日志 我们必须将您自己的日志表部署到数据库并制作报告服务写入它 http technet microsoft com en us library ms157403 aspx 简而言之 Reporting S
  • 如何搜索例程的内容/(SP-触发函数)

    我需要在数据库内所有例程的例程主体 存储过程 函数 触发器 中搜索文本 我该怎么做 Thanks SELECT OBJECT NAME object id FROM sys sql modules WHERE definition LIKE
  • 实现软删除的最佳方法是什么?

    目前在做一个项目 我们要对大部分用户 用户角色 实现软删除 我们决定添加一个is deleted 0 数据库中每个表的字段并将其设置为 1 如果特定用户角色点击特定记录上的删除按钮 现在为了将来的维护 每个SELECT查询需要确保它们不包含
  • 数据库字段中的逗号分隔值

    我有一个产品表 该表中的每一行对应一个产品 并由唯一的 ID 标识 现在 每个产品都可以有多个与该产品关联的 代码 例如 Id Code 0001 IN ON ME OH 0002 ON VI AC ZO 0003 QA PS OO ME
  • st_intersects 与 st_overlaps

    这两个查询有什么区别 select a gid sum length b the geom from polygons as a roads as b where st intersects a the geom b the geom gr

随机推荐

  • 尝试在某些设备上播放 mp3 ActivityNotFoundException

    我从尝试播放 mp3 文件的 Galaxy Ace 设备收到崩溃报告 来自服务器的音频始终为 mp3 这是我的代码 Intent intentaudio new Intent intentaudio setAction Intent ACT
  • 绑定到 DataGridView.Datasource 时加载 DataTable 缓慢

    我搜遍了所有地方 但我无法弄清楚这一点 我正在开发一个 Winforms UI 该 UI 正在提取需要在 DataGridView 中显示的大量行 我已经阅读了有关限制行数和分页的所有内容 但我绝对没有好的方法可以做到这一点 基本上 我正在
  • 斯坦福大学对 Python NLTK 的通用依赖关系

    有什么方法可以使用 python 或 nltk 获取通用依赖项吗 我只能生成解析树 Example 输入句子 My dog also likes eating sausage Output Universal dependencies nm
  • 如何在ios7中使用ALAssetLibrary获取所有照片?

    我无法像苹果 iPhone 在 ios8 中那样即时获取照片 我已经使用 PHAsset 和 Photos framework 实现了 ios8 现在 当我在 ios7 设备中运行相同的代码时 它不会返回任何内容 所以 我使用 ALAsse
  • 无法连接 EA 中活动图中的活动

    您好 我目前遇到 EA 中活动图的问题 我正在尝试描述一个代码 当我添加启动控制节点和活动节点时 我无法通过控制流连接它们 当我尝试将两个活动与控制流连接在一起时 会发生同样的问题 我收到以下错误 请求的连接不符合 UML 有人可以就此提供
  • 如何使用 ExoPlayer IMA 扩展在特定点展示广告?

    我在用ExoPlayer 2 7 3带有 IMA 扩展名 我必须以一定的时间间隔展示广告 我已经成功地整合了AdsLoader and AdsMediaSource 我正在接收并展示广告 但广告只出现在电影的开头 如何让广告在我想要的时间点
  • 使用 openxml 创建 powerpoint 的示例

    在哪里可以找到使用 OpenXML 在 ppt 文件中插入文本和图像的 Hello World 我无法生成简单的模板 在开发 PowerPoint 模板之前 请阅读此内容中的presentationML 结构PDF 请参阅以下链接以使用 O
  • 如何在 Tkinter 中将点击事件绑定到 Canvas? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我只是想知道是否有任何可能的方法使用 Tkinter 将单击事件绑定到画布 我希望能够单击画布上的任意位置并将对象移动到其中 我能够做出动作 但我还没有找到将点击绑定到画布的方法
  • 在数据框中使用向量的打印方法

    考虑以下向量x x lt c 6e 06 75000400 743450000 340000 4300000 我想打印x以百万计 所以我编写了一个 print 方法并将一个类分配给x print million lt function x
  • Play 框架 2 (Java) 表单数据绑定与嵌套允许字段

    考虑以下模型 public class Contact Required public String name Valid public List
  • 将 POST curl 从命令行转换为 php 时遇到问题

    我在将curl 命令转换为php 时遇到问题 这部分效果很好 CURL 命令将条目添加到我的 Parse com 数据库中 curl X POST H X Parse Application Id my id H X Parse REST
  • iOS AUSampler audiounit - EXS 音频文件的文件路径问题?

    遵循苹果文档here我已经能够通过重新创建成功将 GarageBand EXS 采样器乐器加载到我的 iOS 应用程序中的 AUSampler 中 例如我的应用程序目录中的以下路径 Sampler Files Funk Horn Secti
  • 如何使用 MVVM 在 RibbonComboBox 上设置 SelectedItem?

    我该如何设置SelectedItem on a RibbonComboBox using MVVM图案 View
  • Playframework [1.2.7] 依赖项失败

    我们遇到了游戏框架依赖管理的问题 几天前该问题运行良好 我们尚未对依赖文件进行任何配置更改或更改 但在我们的构建服务器和本地 均位于不同的网络和 ISP 上 上均出现以下错误 problems summary WARNINGS module
  • Django 从 ImageField 下载图像

    我正在使用 Django 1 7 和 Python 3 4 我有一个这样的模型 class ImageModel models Model image models ImageField verbose name image upload
  • 两个数据库之间的Mysql数据库同步

    我们正在各个商店运行带有 MySql 后端的 Java PoS 销售点 应用程序 我想让商店中的数据库与主机服务器上的数据库保持同步 当商店发生一些变化时 它们应该在主机服务器上更新 我该如何实现这一目标 创建复制并不难 这里有一些很好的教
  • 在C中查询最大套接字发送缓冲区大小?

    我知道我可以 cat proc sys net core wmem max 来获取套接字上 SO SNDBUF 的最大大小 但是有没有一种简单的方法可以在 C 中查询该值 而无需执行打开文件的笨拙步骤 读取并转换为整数 要获取 net ip
  • 如何在 R 中查看所有 xml_nodeset 类对象(rvest::html_nodes 的输出)?

    如果我们创建一个类的对象xml nodes using rvest s html nodes 我们如何在 R 控制台中查看所有输出 Example library rvest library dplyr Generate some samp
  • PHP MySQL 多条件搜索

    我在网站中有一个搜索表单 希望有几个由用户输入的搜索词来执行数据库搜索 词如下 Keywords 物业出售 出售 出租 房产类型 公寓 排屋 State 最低价格 最高价格 这是使用上述术语的输入执行搜索的脚本 public functio
  • Supabase动态RPC函数

    我希望创建一个 RPC 来获取列的不同值 但我将在多个表中执行此操作 并且我不想为每个列和每个表一遍又一遍地编写此函数 我有以下 SQL 语句可以满足我的需要 SELECT owner FROM customers GROUP BY own