Postgresql 如何在plpgsql中使用变量作为字段名

Postgresql 如何在plpgsql中使用变量作为字段名,postgresql,plpgsql,Postgresql,Plpgsql,在博士后有可能做出这样的事情吗 DECLARE variable VARCHAR BEGIN variable := TG_RELNAME || '_id'; OLD.variable = 123; END; 我无法将变量的值用作字段名称 p、 我的db版本是8.4。据我所知,这样做的唯一方法就是进行额外的查询,例如 execute 'update ' || TG_RELNAME || ' set ' || variable ||' = 123'; 注意,这可

在博士后有可能做出这样的事情吗

DECLARE variable VARCHAR  
BEGIN  
    variable := TG_RELNAME || '_id';  
    OLD.variable = 123;  
END;
我无法将变量的值用作字段名称


p、 我的db版本是8.4。

据我所知,这样做的唯一方法就是进行额外的查询,例如

execute 'update ' || TG_RELNAME || ' set ' || variable ||' = 123';

注意,这可能是一个坏主意(它会导致额外的膨胀或比赛条件)。有一些解决方法,比如使用非plpgsql触发器函数,但可能要做的事情是对函数进行硬编码。您应该引用
TG_RELNAME
variable
使用
quote_ident()
函数避免语法错误,如果它们包含“异常”字符:
执行“更新”| | quote_ident(TG_RELNAME)| |“set”| quote_ident(variable)| |“=123”
no,此触发器用于删除行。
delete FROM alerts,其中item_table=TG_RELNAME,item_id=OLD。{field_name_FROM_variable_value}