,我实现了检查,如果一个值出现在一个特定表的特定行的函数: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。如果这不是你正在做的事情,也许编辑并解释你的真正目标是什么,因为很难想象像这样的功能有没有更好的方法来使用它。 –