가변 입력 매개변수를 사용하는 함수
PostgreSQL에서 저장 프로시저(함수)를 생성할 때 입력을 기반으로 테이블 업데이트를 처리해야 합니다. 매개변수. 가변 입력 매개변수를 수용하기 위한 한 가지 접근 방식은 모드 매개변수를 도입하는 것입니다. 이 모드 매개변수는 업데이트 쿼리에 사용할 특정 매개변수를 제어합니다.
그러나 다른 접근 방식은 함수 매개변수에 기본값을 사용하는 것입니다.
기본값
함수 매개변수의 기본값을 정의하면 함수를 단순화하고 코드 가독성을 높일 수 있습니다. 다음 예를 고려하십시오.
CREATE OR REPLACE FUNCTION update_site(_name text, _city text DEFAULT NULL, _telephone int DEFAULT NULL) RETURNS int LANGUAGE plpgsql AS $func$ BEGIN IF _city IS NULL AND _telephone IS NULL THEN RAISE WARNING 'At least one not-null input value required!'; RETURN; -- nothing to update END IF; UPDATE "Sites" SET "City" = COALESCE(_city, "City") , "Telephone" = COALESCE(_telephone, "Telephone") WHERE "SiteName" = _name; END $func$;
기본값의 장점:
사용법:
이 업데이트된 기능은 다음과 같습니다. 다양한 호출 표기법과 함께 사용:
SELECT update_site('foo', 'New York'); -- no telephone
SELECT update_site(name => 'foo', _telephone => 123); -- no city
SELECT update_site('foo', _telephone => 123); -- still no city
효율성
모드 매개변수 또는 기본값을 사용하는 두 가지 접근 방식 값은 간단한 업데이트 작업에 효율적일 수 있습니다. 그러나 더 복잡한 시나리오의 경우 기본값이 더 명확하고 유지 관리하기 쉬운 솔루션을 제공할 수 있습니다.
접근 방식 선택
특정 요구 사항에 적합한 최선의 선택입니다. 열이 NOT NULL로 정의된 경우 기본값은 더 간단하고 빠른 접근 방식을 제공합니다. 다양한 출력이 포함된 SELECT 쿼리와 관련된 보다 복잡한 시나리오의 경우 VARIADIC 또는 다형성 입력 유형과 동적 SQL을 사용하는 것이 좋습니다.
위 내용은 기본값은 어떻게 가변 입력 매개변수에 대한 PostgreSQL 함수 설계를 향상시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!