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

创建获取用户帖子点赞数RPC函数后调用提示需刷新Schema缓存求助

解决RPC函数调用时的Schema缓存提示问题

问题分析

你遇到的提示说明前端使用的Schema缓存和数据库中最新的函数定义不匹配,同时你的函数还存在参数命名冲突的潜在问题:PostgreSQL中当参数名与查询中的字段名(或表别名)重复时,会优先解析为字段,导致逻辑可能不符合预期。

解决步骤

  1. 修正函数定义,避免命名冲突
    将参数名修改为带前缀的形式(比如p_userId),同时添加stable属性(只读函数推荐添加,提升缓存效率):

    create or replace function get_number_of_posts_by_user(p_userId uuid)
    returns integer
    as $$
      SELECT 
      count(pl.id)
      FROM 
      auth.users au
      join posts p on p.user_id = au.id
      join post_likes pl on pl.post_id = p.id
      where au.id = p_userId
    $$ language sql stable;
    
  2. 手动刷新Schema缓存
    执行以下SQL命令强制刷新PostgREST的Schema缓存(如果使用的是PostgREST类的RPC服务):

    NOTIFY pgrst, 'reload schema';
    

    如果是使用Supabase等平台,也可以直接在SQL编辑器右上角点击「刷新Schema」按钮。

  3. 确认函数执行权限
    确保前端用户对应的数据库角色有该函数的执行权限,比如给认证用户授权:

    GRANT EXECUTE ON FUNCTION get_number_of_posts_by_user(uuid) TO authenticated;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:31:22