[尝试更新表中的特定列值时出错
错误: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();
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();