我正在尝试创建一个触发器,在更新一个表时,运行查询并使用结果更新另一个表。
我遇到困难时,会将查询结果分配给正确输入的变量。
当前错误是数组必须以“{”或其他维度信息开头,但是当我调整时我得到其他错误
请参阅下面的当前代码,让我知道最佳方法
我非常感谢您的帮助,因为我花了大量时间咨询谷歌。
CREATE TYPE compfoo AS (ownership character varying (50), count INT);
CREATE OR REPLACE FUNCTION test1_update() RETURNS trigger AS
$$
DECLARE
largest_owner character varying (50);
temp_result compfoo[];
BEGIN
SELECT ownership, count(*) INTO temp_result
FROM austpoly2
WHERE ownership IS NOT NULL
group by ownership
ORDER BY count DESC
LIMIT 1;
largest_owner = temp_result[0].ownership;
UPDATE public.states
SET ownership= largest_owner
WHERE statecode='1';
RETURN NEW;
END;
$$
LANGUAGE plpgsql;
CREATE TRIGGER test1_update_trigger
BEFORE UPDATE ON austpoly2
FOR EACH ROW EXECUTE PROCEDURE test1_update();
答案 0 :(得分:0)
谢谢a_horse with_no_name
您的回复与
相结合temp_result compfoo%ROWTYPE;
解决了这个问题