作者:紫色咖啡调 | 来源:互联网 | 2023-01-29 05:46
我正在创建一个触发器,该触发器为列使用动态名称
NEW.name:=2222; -- works fine !
但
dynamic_column:='name';
EXECUTE '$1.'||dynamic_column||':=2222 ' USING NEW; -- raises error
给出一个错误:
错误:“ $ 1”或附近的语法错误LINE 1:$ 1.name:= 2222
vencedor..
5
我在这里找到了信息: Assign to NEW by key in a Postgres trigger
如果我们通过以下方式启用hstore模块:
CREATE EXTENSION hstore;
我们可以完成这个:
dynamic_column:='name';
temp_sql_string:='"'||dynamic_column||'"=>"2222"';
NEW := NEW #= temp_sql_string::hstore;
并且现在将RECORD NEW.name设置为值2222。
谢谢您艰苦的努力寻找解决方案@Laurenz Albe
1> vencedor..:
我在这里找到了信息: Assign to NEW by key in a Postgres trigger
如果我们通过以下方式启用hstore模块:
CREATE EXTENSION hstore;
我们可以完成这个:
dynamic_column:='name';
temp_sql_string:='"'||dynamic_column||'"=>"2222"';
NEW := NEW #= temp_sql_string::hstore;
并且现在将RECORD NEW.name设置为值2222。
谢谢您艰苦的努力寻找解决方案@Laurenz Albe