Postgresql函数的返回类型不受支持

问题描述 投票:0回答:1

[尝试更新表中的特定列值时出错

错误:FROM中的函数“ my_function”具有不受支持的返回类型触发器

我尝试手动运行更新脚本,但由于在生产环境中使用了数据库,因此编写后触发给我一个错误。基本上我想做的就是从另一个表更新一个表的列值,然后我将该表命名为“ table_name_temp”。对我来说,脚本看起来不错,但是我不确定问题的确切原因,因为错误响应似乎非常模糊。

 Create or REPLACE FUNCTION my_function() RETURNS TRIGGER AS $$
      BEGIN
    update schema_name.table_name set category = schema_name.table_name_temp.category 
        FROM schema_name.table_name_temp 
        WHERE (some where clauses for first check)
        and schema_name.table_name.name = schema_name.table_name_temp.name
        returning null;
      END;
   $$ LANGUAGE plpgsql;

 DROP TRIGGER IF EXISTS trigger_name on schema_name.table_name;

   CREATE TRIGGER trigger_name AFTER UPDATE ON schema_name.table_name
    FOR EACH ROW EXECUTE PROCEDURE my_function();

select * from my_function();
sql postgresql plpgsql database-trigger
1个回答
0
投票
CREATE TRIGGER trigger_name AFTER UPDATE ON schema_name.table_name FOR EACH ROW EXECUTE PROCEDURE my_trigger_function(); Create or REPLACE FUNCTION my_trigger_function() RETURNS TRIGGER AS $$ BEGIN select * from my_function_that_do_something(); return null; END; $$ LANGUAGE plpgsql; Create or REPLACE FUNCTION my_function_that_do_something() RETURNS integer AS $$ BEGIN update ...; END; $$ LANGUAGE plpgsql; select * from my_function_that_do_something();
© www.soinside.com 2019 - 2024. All rights reserved.