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

PostgreSQL触发器开发:创建Chat时自动添加创建者至chat_members

解决方案:创建Chat时自动添加创建者到chat_members表

步骤1:为Chat表添加created_by字段

首先需要在Chat表中新增存储创建者ID的字段,关联到Supabase的用户表:

ALTER TABLE chat 
ADD COLUMN created_by UUID REFERENCES auth.users(id) NOT NULL;

步骤2:编写触发器函数

创建PL/pgSQL函数,在Chat插入完成后,自动将创建者与新Chat的关联关系插入chat_members表:

CREATE OR REPLACE FUNCTION add_creator_to_chat_members()
RETURNS TRIGGER AS $$
BEGIN
  INSERT INTO chat_members(chat_id, user_id)
  VALUES(NEW.id, NEW.created_by);
  RETURN NEW;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;

注:SECURITY DEFINER用于确保触发器拥有插入chat_members表的权限,可根据实际权限配置调整。

步骤3:绑定触发器到Chat表

将函数绑定到Chat表的AFTER INSERT事件,确保每次创建Chat时触发关联逻辑:

CREATE TRIGGER trigger_add_creator_to_members
AFTER INSERT ON chat
FOR EACH ROW
EXECUTE FUNCTION add_creator_to_chat_members();

使用说明

在Supabase中插入Chat时,传入当前用户ID(可通过auth.uid()直接获取):

INSERT INTO chat(name, created_by) VALUES('我的专属聊天', auth.uid());

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 00:04:51