You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用多列在Supabase中实现批量删除?

Supabase API是否支持多列组合标识的批量删除?

问题说明

Supabase官方API支持基于单列的批量删除,示例代码如下:

const { data, error } = await supabase
  .from('cities')
  .delete()
  .in('id', ['1', '2'])

但不支持直接通过.in()方法传入多列组合(比如{list_id,contact_id})来批量删除多行,像下面这种写法无法生效:

const { data, error } = await supabase
  .from('list_members')
  .delete()
  .in('{list_id,contact_id}', ['{7,2}', '{7,4}']);

可行解决方案:自定义PostgreSQL函数

可以通过编写PostgreSQL函数实现多列组合的批量删除,以下是可用的实现(效率需结合实际数据量评估):

create or replace function bulk_delete_list_members (list_ids bigint [], contact_ids bigint [])
  returns setof bigint
  language PLPGSQL
  as $$
begin
    return query WITH deleted AS (

      delete from list_members
      where (list_id, contact_id) in (
        select list_id, contact_id
        from unnest(list_ids, contact_ids) as x(list_id, contact_id)
      ) returning *

    ) SELECT count(*) FROM deleted;
end;
$$;

该函数通过unnest将传入的两个数组参数配对,生成对应的(list_id, contact_id)组合,再执行删除操作,最终返回删除的行数。


内容的提问来源于stack exchange,提问作者stuart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:25:39