plpgsql을 사용하여 PostgreSQL DB에서 함수를 작성해야하는지, 아니면 언어 프로그래밍이 작동하더라도 python/java 클래스에서이 함수를 만들어야하는지 여부는 알 수 없습니다.plpgsql (postgresql) 또는 파이썬 클래스에서 함수를 만드는 것이 더 좋을까요?
내 상사가 왜 필자가 파이썬이 아닌 plpgsql에 함수를 작성했는지 물었고, 왜 더 나은 결과를 얻었는지 신뢰할 수있는 답을 줄 수 없었습니다.
Google에 대한 정보가 있으며 이에 대한 정보를 찾을 수 없습니다. plpgsql에서 함수를 수행하는 것에 대해 상상할 수있는 유일한 점은 프로그래밍 언어를 변경하면 함수를 호출하고 새 언어로 다시 작성하지 않아도됩니다.
이것은 stackoverflow 멤버의 도움으로 작성한 plpgsql의 예제입니다. 파이썬 클래스에서 다시 작성해야하거나 db 내부에 함수로 남겨두고 파이썬 클래스에서 함수를 호출해야합니까?
CREATE OR REPLACE FUNCTION createid(idslist varchar[], objecttype varchar)
RETURNS TABLE(original_id varchar, new_id varchar) as
$$
declare
l_prefix text;
BEGIN
IF LOWER(objectType) = 'global' THEN
l_prefix := 'GID';
ELSE
l_prefix := 'ORG';
END IF;
RETURN QUERY
INSERT INTO idstable(original_id, new_id)
select t.x, l_prefix||nextval('mapSquema.globalid')::TEXT
from unnest(idslist) as t(x)
returning *
END;
$$ LANGUAGE plpgsql;
좋은 질문입니다. 하지만 정답은 없습니다. "데이터베이스 대 애플리케이션의 비즈니스 로직"을위한 Google. 어떤 사람들은 나쁜 습관이라고 생각합니다. 그러나 나는 완전히 동의하지 않는다. 그것은 모두 상반 관계와 아키텍처에 관한 것입니다. – AlexM
고마워, 나는 그것을 어떻게 구글로 몰랐다. –