我将数据存储在PostgreSQL 9.5中名为 member_json 的jsonb字段中,名为 event_members_json 。我想创建一个触发器,每次在另一个表调用上完成插入时,event_members会将新的事件成员插入到jsonb字段的数组中。
字段jsonb字段具有以下结构:
extends
这将是将新成员(json对象)插入上述成员数组的语法?? ...
非常感谢!
答案 0 :(得分:0)
您需要创建一个触发器函数,该函数从插入的值构建jsonb
对象,然后将其连接到另一个表中members
值的jsonb
元素: / p>
CREATE FUNCTION add_jsonb_member () RETURNS trigger AS $$
BEGIN
UPDATE event_members_json
SET json_column = jsonb_set(json_column, '{members}', json_column->'members' ||
jsonb_build_object('user_id', NEW.user_id,
'last_name', NEW.last_name,
...
)
)
WHERE ...;
RETURN; -- Assuming AFTER INSERT trigger
END;
$$ LANGUAGE plpgsql;
您应该在表AFTER INSERT
上的event_members
触发器中调用此函数。