Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL函数返回类型错误_Postgresql - Fatal编程技术网

PostgreSQL函数返回类型错误

PostgreSQL函数返回类型错误,postgresql,Postgresql,我是一个新手,正在努力自学PostgreSQL。目前,我正在尝试创建一个函数,该函数根据同一表中其他两列的值更新一列。我正在创建一个函数,因为我想在编辑列值时将其作为触发器来执行。所有列都包含文本 我的代码是: CREATE FUNCTION rev_1.update_proceed_column() RETURNS character varying AS $BODY$ UPDATE rev_1.catchment_e_gravity_lines SET proceed = 'N/A'

我是一个新手,正在努力自学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;

然而,我得到了一个“返回类型不匹配”的错误,似乎无法使函数工作。我遗漏了什么吗?

感谢@Kristo Mägi,我将标题从字符调整为无效,现在它可以按照我的需要工作。

您的更新查询不会返回任何内容,这意味着这基本上是
void
函数,它应该在标题
返回无效
中定义,而不是
返回字符..
。另外,当实际需要返回char/varchar/text时,只需使用
返回text
,当前格式仍然不正确。