我创建了一个函数,将一个值插入到表中插入的每一行的json中。
但是当我执行插入时,它告诉我该列不存在。
这是功能:
CREATE OR REPLACE FUNCTION insert_id_function()
RETURNS trigger AS'
BEGIN
NEW.previewcontent = previewcontent || ''{"id":1}'';
RETURN NEW;
END;'
LANGUAGE plpgsql VOLATILE;
这是触发器:
CREATE TRIGGER insert_id_trigger
BEFORE INSERT
ON "Telnet"
FOR EACH ROW
EXECUTE PROCEDURE insert_id_function();
这是错误:
`ERROR: column "previewcontent" does not exist LINE 1: SELECT previewcontent || '{"id":1}'`
这是我的表定义:
答案 0 :(得分:1)
这是NEW
记录的一栏:
NEW.previewcontent = NEW.previewcontent || ''{"id":1}'';
如果previewcontent
的类型为jsonb,请使用jsonb_build_object()
将当前值id
添加到jsonb列:
CREATE OR REPLACE FUNCTION insert_id_function()
RETURNS trigger AS $$
BEGIN
NEW.previewcontent = NEW.previewcontent || jsonb_build_object('id', NEW.id);
RETURN NEW;
END;
$$ LANGUAGE plpgsql VOLATILE;