이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.토토 사이트 추천 : 문서 : 17 : 41.4. 표현버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

23.4. 사설 토토 사이트식

다음에 사용된 모든 사설 토토 사이트PL/pgSQL문은 다음을 사용하여 처리됩니다. 서버의 일반 SQL 실행자. 다음을 포함하는 것으로 보이는 사설 토토 사이트 상수는 실제로 런타임 평가가 필요할 수 있습니다(예:'지금'에 대한타임스탬프유형) 따라서 불가능합니다.PL/pgSQL실제 식별을 위한 파서 NULL 키워드가 아닌 상수 값. 모든 사설 토토 사이트은 쿼리를 실행하여 내부적으로 평가됨

선택사설 토토 사이트

다음을 사용하여SPI관리자. 에서 사설 토토 사이트, 발생PL/pgSQL변수 식별자가 대체됩니다. 매개변수를 사용하고 변수의 실제 값이 전달됩니다. 매개변수 배열의 실행자에게. 이는 쿼리를 허용합니다 SELECT를 한 번만 준비한 다음 재사용하도록 계획합니다. 후속 평가.

에 의해 수행된 평가포스트그레SQL주 파서에는 몇 가지 부작용이 있습니다 상수 값의 해석에 관한 것입니다. 자세하게는 이 두 함수가 수행하는 작업의 차이점은 다음과 같습니다.

함수 생성 logfunc1(TEXT)은 타임스탬프를 '로 반환합니다.
    선언
        $1에 대한 logtxt 별칭;
    시작
        INSERT INTO 로그 테이블 VALUES(logtxt, ''now'');
        RETURN ''지금'';
    끝;
' 언어 'plpgsql';

그리고

함수 생성 logfunc2(TEXT)는 타임스탬프를 '로 반환합니다.
    선언
        $1에 대한 logtxt 별칭;
        curtime 타임스탬프;
    시작
        curtime := ''지금'';
        INSERT INTO 로그 테이블 VALUES(logtxt, curtime);
        복귀 시간;
    끝;
' 언어 'plpgsql';

다음의 경우logfunc1(), 그포스트그레SQL메인 파서는 알고 있습니다 INSERT 계획을 준비할 때 문자열은'지금'다음과 같이 해석되어야 합니다타임스탬프왜냐하면 대상 필드는로그테이블이런 종류입니다. 따라서, 그것은 이 시점에서 상수를 만들 것이고 이 상수 값은 그런 다음 모든 호출에 사용됩니다.logfunc1()백엔드 수명 동안. 이것은 프로그래머가 원하는 것이 아니라는 것은 말할 필요도 없습니다.

다음의 경우logfunc2(), 그PostgreSQL주 파서는 그렇지 않습니다 어떤 유형인지 알아요'지금'다음과 같아야 합니다. 따라서 유형의 데이터 값을 반환합니다.텍스트문자열 포함'지금'. 이후 현지 임무를 수행하는 동안 변수커타임, 그PL/pgSQL인터프리터는 이 문자열을 다음으로 변환합니다.타임스탬프다음을 호출하여 입력text_out()그리고timestamp_in()변환을 위한 함수. 따라서 계산된 타임스탬프는 각 실행 시 다음과 같이 업데이트됩니다. 프로그래머는 기대합니다.

레코드 변수의 변경 가능 특성으로 인해 문제가 발생합니다. 이 연결. 레코드 변수의 필드가 사용되는 경우 사설 토토 사이트식 또는 명령문에서 필드의 데이터 유형은 하나의 호출과 동일한 사설 토토 사이트식 사이의 변경 사설 토토 사이트식은 존재하는 데이터 유형을 사용하여 계획됩니다. 사설 토토 사이트식에 처음 도달할 때. 그럴 때 이 점을 명심하세요. 둘 이상의 이벤트를 처리하는 트리거 프로시저 작성 테이블. (EXECUTE는 다음과 같은 경우에 이 문제를 해결하는 데 사용할 수 있습니다. 필요합니다.)