я реализовал функцию, которая проверить, если значение отображается в конкретной строке конкретной таблицы:ошибка 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
Почему?
Если вы пытаетесь сделать это как часть типа «вставить, если не существует» или «обновить, вставить, если не существует», остановитесь сейчас и прочитайте о upsert на PostgreSQL. Если это не то, что вы делаете, возможно, отредактируйте и объясните, какова ваша настоящая цель, потому что трудно представить, как это работает, когда нет лучшего способа сделать это. –