0
我很新,想要教我自己的PostgreSQL。目前我正在尝试创建一个函数,它根据同一个表中的其他两列的值更新列。我正在创建函数,因为我想将其称为触发器,以便在编辑列值时执行。所有的colomns都持有文字。PostgreSQL函数返回类型错误
我的代码是:
CREATE FUNCTION rev_1.update_proceed_column() RETURNS character varying AS
$BODY$
UPDATE rev_1.catchment_e_gravity_lines SET proceed = 'N/A'
WHERE installed = 'YES' AND dependent = 'YES';
UPDATE rev_1.catchment_e_gravity_lines SET proceed = 'N/A'
where installed = 'YES' AND dependent ='NO';
UPDATE rev_1.catchment_e_gravity_lines SET proceed = 'YES'
WHERE installed = 'NO' AND dependent = 'NO';
UPDATE rev_1.catchment_e_gravity_lines SET proceed = 'NO'
WHERE installed = 'NO' AND dependent = 'YES';$BODY$
LANGUAGE sql VOLATILE NOT LEAKPROOF;
ALTER FUNCTION rev_1.update_proceed_column()
OWNER TO postgres;
不过,我得“的返回类型不匹配”的错误并不能似乎得到的功能工作。我错过了什么吗?
你的更新查询不返回任何东西,这意味着这基本上是'void'函数,它应该在头文件'RETURNS void'而不是'RETURNS character..'中定义。另外,当实际需要返回char/varchar/text时,只需使用'RETURNS text',目前的格式不正确。 –