: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에 대해 읽어보십시오. 그것이 당신이하고있는 것과 다르다면 편집하고 실제 목표가 무엇인지 설명하십시오.이를 수행하는 더 좋은 방법이없는 곳에서 사용하는 것과 같은 기능을 상상하기 란 어렵습니다. –