,我實現了檢查,如果一個值出現在一個特定表的特定行的函數:PostgreSQL函數錯誤:列名不存在
CREATE FUNCTION check_if_if_exist(id INTEGER, table_name character(50), table_column character(20)) RETURNS BOOLEAN AS $$
DECLARE res BOOLEAN;
BEGIN
SELECT table_column INTO res
FROM table_name
WHERE table_column = id;
RETURN res;
END;
$$ LANGUAGE plpgsql
我已經創建並填寫一個簡單的測試表對於試試這個功能:
CREATE TABLE tab(f INTEGER);
和我通話功能一樣
SELECT check_if_exist(10, tab, f);
但我發生這個錯誤:
ERROR: column "prova" does not exist
LINE 1: SELECT check_if_exist(10, tab, f);
^
********** Error **********
ERROR: column "tab" does not exist
SQL state: 42703
Character: 27
爲什麼?
如果您嘗試將其作爲「插入如果不存在」或「更新,插入(如果不存在)」的一部分來完成,請立即停止並閱讀關於PostgreSQL的upsert。如果這不是你正在做的事情,也許編輯並解釋你的真正目標是什麼,因爲很難想象像這樣的功能有沒有更好的方法來使用它。 –