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',目前的格式不正確。 –