SuperAPI AI 工具集

supabase-database

数据与分析

查看项目

更新于 10-15 09:27

技能介绍

用途

该技能用于通过 Supabase 的 REST API 对数据库表执行 CRUD 操作,包括查询(SELECT)、插入(INSERT)、更新(UPDATE)、删除(DELETE)数据,以及调用 RPC 数据库函数。适合在命令行或自动化脚本中直接操作 Supabase 数据库。

主要能力

  • SELECT 查询:支持选择全部或指定列、等值/大于/小于/模式匹配/IN/IS NULL 等过滤、排序、限制数量、分页(offset 或 Range 头)、多条件 AND、OR 过滤以及嵌套过滤。
  • INSERT 插入:支持插入单行、多行,以及通过 Prefer: resolution=merge-duplicates 头实现 Upsert(存在则更新)。
  • UPDATE 更新:按过滤条件更新单行或多行。
  • DELETE 删除:按过滤条件删除单行或多行。
  • RPC 调用:执行存储过程,支持无参数和带参数调用。
  • 过滤运算符:提供 eq、neq、gt、gte、lt、lte、like、ilike、is、in、not、or、and 等运算符参考。
  • 响应格式化:可配合 jq 美化 JSON、提取字段;通过 Prefer: count=exact 头获取总数。
  • 常见模式:检查记录是否存在、不存在则创建、批量操作等示例。
  • 错误处理:辅助脚本自动处理并显示 HTTP 错误,可通过返回码判断成功与否。

使用方式

需先设置环境变量:

export SUPABASE_URL="https://your-project.supabase.co" export SUPABASE_KEY="your-anon-or-service-role-key"

并 source 共享的 Supabase API 辅助脚本:

source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/supabase-api.sh"

随后可调用 supabase_get、supabase_post、supabase_patch、supabase_delete 等函数,传入 REST 路径与 JSON 数据。例如查询:

supabase_get "/rest/v1/users?select=id,name,email"

插入:

supabase_post "/rest/v1/users" '{"name": "John Doe", "email": "john@example.com", "age": 30}'

更新:

supabase_patch "/rest/v1/users?id=eq.123" '{"name": "Updated Name"}'

删除:

supabase_delete "/rest/v1/users?id=eq.123"

调用 RPC:

supabase_post "/rest/v1/rpc/calculate_total" '{"user_id": 123, "start_date": "2023-01-01", "end_date": "2023-12-31"}'

适用场景

  • 在命令行或脚本中快速查询、修改 Supabase 数据库数据。
  • 自动化任务中批量插入、更新或删除记录。
  • 调用数据库端存储过程完成计算或业务逻辑。
  • 需要以编程方式检查记录是否存在并按条件创建。

限制与安全说明

  • 需自行提供有效的 SUPABASE_URL 与 SUPABASE_KEY。
  • 客户端操作应使用 anon key(遵循行级安全策略 RLS);管理操作可使用 service role key(会绕过 RLS,需谨慎)。
  • 应在 Supabase 控制台配置行级安全策略。
  • 切勿将密钥提交到版本控制。
  • 完整 API 文档见:https://supabase.com/docs/guides/api