上代码吧
CREATE OR REPLACE FUNCTION "public"."copy_to_self_copy"()
RETURNS "pg_catalog"."trigger" AS $BODY$
declare copy_name varchar(255);
BEGIN
copy_name = TG_TABLE_SCHEMA || '.' || TG_TABLE_NAME ||'_copy';
insert into copy_name values (new );
return new;
END$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
我希望达到,这种效果,当 名为”a" 的表中 插入一条数据后, 他会在“a_copy” 的表中 同样插入一条数据。
我就把变量放在了 insert into [ 变量] values( new);
这样,这个不能识别 这个变量,直接把他当作 copy_name 了。
另一种方式
CREATE OR REPLACE FUNCTION "public"."copy_to_self_copy"()
RETURNS "pg_catalog"."trigger" AS $BODY$
declare copy_name varchar(255);
BEGIN
copy_name = TG_TABLE_SCHEMA || '.' || TG_TABLE_NAME ||'_copy';
Execute 'insert into '|| copy_name ||' values '||new;
return new;
END$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
我把 他转成 字符串拼接的,但是问题又出现了, new 这个东西, 不能 解析成 本身的数据类型。