如何使用 Supabase 中的函数运行自定义 SQL 查询
·
最近我需要在 Supbase 项目中运行自定义 SQL 函数。他们的 Javascript SDK 不支持这一点,所以唯一的方法是通过数据库函数。然后,您可以使用 Javascript SDK 调用这些函数。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--aioqfT-w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://img.bloggu .io/ipfs/bafkreidyyytr7h5uindrv776chnzkfqtxip4wpfwx435jqipkqac6k66mi)
让我们看一个使用名为users的表的非常简单的示例
CREATE OR REPLACE FUNCTION all_users()
RETURNS TABLE (f_id uuid
, f_email text
, f_full_name text)
LANGUAGE plpgsql AS
$func$
BEGIN
RETURN QUERY
SELECT id, email, full_name FROM users
END
$func$;
进入全屏模式 退出全屏模式
上述函数将为表中的所有用户返回id, email, full_name。要快速测试该功能,您可以运行SELECT * FROM all_users();。
现在,转到您的 Javascript 代码,您可以使用以下语法运行该函数:
let { data, error } = await supabase.rpc('all_users')
进入全屏模式 退出全屏模式
就这么简单😅。
现在,让我们看一个接收两个参数的函数:
CREATE OR REPLACE FUNCTION all_users(created_from timestamp, created_to timestamp)
RETURNS TABLE (f_id uuid
, f_email text
, f_full_name text)
LANGUAGE plpgsql AS
$func$
BEGIN
RETURN QUERY
SELECT id, email, full_name FROM users BETWEEN created_from AND created_to
END
$func$;
进入全屏模式 退出全屏模式
而且,我们可以像这样从 Javascript SDK 调用这个函数:
const { data, error } = await supabase
.rpc('all_users', { created_from: ..., created_to: ... })
进入全屏模式 退出全屏模式
如果你想联系我,查看我的 Twitter。
使用bloggu.io发布的文章。免费试用。
更多推荐
所有评论(0)