이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 스포츠 토토 결과 만들기버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

만들기 토토 사이트 추천

이름

CREATE FUNCTION -- 새 함수 정의

시놉시스

토토 사이트 추천 생성 [ 또는 교체 ]이름 ( [ argtype[, ...] ] )
    보고재입력언어언어명| 불변 | 안정적 | 휘발성 물질
    | NULL 입력 시 호출됨 | NULL 입력 시 NULL 반환 | 엄격한
    | [외부] 보안 호출자 | [외부] 보안 정의자
    | 처럼 '정의'
    | 처럼 'obj_file', 'link_symbol'
   ...
    [ 와 함께 (속성 [, ...] ) ]

설명

함수 생성새로운 것을 정의합니다 기능.함수 생성 또는 교체새 기능을 생성하거나 기존 기능을 대체합니다. 정의.

스키마 이름이 포함되면 함수는 다음에 생성됩니다. 지정된 스키마. 그렇지 않으면 현재에 생성됩니다. 개요. 새 함수의 이름은 기존 함수와 일치하면 안 됩니다. 동일한 스키마에서 동일한 인수 유형을 사용하는 함수입니다. 그러나 다양한 인수 유형의 함수는 이름을 공유할 수 있습니다. (이것을 호출합니다.오버로딩).

기존 함수의 정의를 업데이트하려면 다음을 사용하십시오.함수 생성 또는 교체. 그렇지 않다 함수의 이름이나 인수 유형을 변경할 수 있습니다. 방식으로(시도했다면 새롭고 고유한 기능). 또한,생성 또는 교체 토토 사이트 추천귀하의 반환 유형을 변경할 수 없습니다. 기존 토토 사이트 추천. 그렇게 하려면 토토 사이트 추천.

함수를 삭제한 후 다시 생성하면 새 함수는 예전과 같은 실체가 아닙니다. 기존 규칙을 깨뜨리게 됩니다. 이전 함수를 참조한 뷰, 트리거 등. 사용함수 생성 또는 교체변경하려면 참조하는 객체를 중단하지 않고 함수 정의 기능.

함수를 생성한 사용자는 다음의 소유자가 됩니다. 기능.

매개변수

이름

생성할 함수의 이름.

argtype

함수 인수의 데이터 유형(선택 사항) 스키마 한정)(있는 경우). 인수 유형은 기본일 수 있습니다. 컴플렉스 또는 도메인을 선택하거나 기존 유형을 복사합니다. 열.

열의 유형은 쓰기로 참조됩니다.테이블 이름.열 이름%TYPE; 이것을 사용하면 때로는 변경 사항으로부터 기능을 독립적으로 만드는 데 도움이 됩니다. 테이블의 정의.

구현 언어에 따라 다음과 같을 수도 있습니다. 지정할 수 있음"유사형"예를 들어cstring. 유사형은 다음을 나타냅니다. 실제 인수 유형이 불완전하거나 지정되었거나 일반 SQL 데이터 집합 외부에 있음 유형.

재입력

반환 데이터 유형(선택적으로 스키마 한정). 그만큼 반환 유형은 기본 유형, 복합 유형 또는 도메인일 수 있습니다. 또는 기존 열의 유형을 복사하도록 지정할 수도 있습니다. 아래 설명을 참조하세요.argtype14779_14855

구현 언어에 따라 다음과 같을 수도 있습니다. 지정할 수 있음"유사형"예:cstring. 그만큼SETOF수정자는 함수가 단일 항목이 아닌 일련의 항목을 반환합니다.

언어명

함수가 속한 언어의 이름 에 구현되었습니다. 아마도SQL, C, 내부또는 사용자 정의 이름 절차적 언어. (또한 참조createlang.) 이전 버전의 경우 호환성이 있으면 이름을 단일 문자로 묶을 수 있습니다. 인용 부호.

불변
안정적
휘발성

이러한 속성은 시스템에 안전한지 여부를 알려줍니다. 함수에 대한 여러 평가를 단일 평가로 대체 런타임 최적화를 위한 평가. 선택은 최대 1개 지정되어야 합니다. 이들 중 아무것도 나타나지 않으면,휘발성기본 가정입니다.

불변다음을 나타냅니다. 함수는 동일한 값이 주어지면 항상 동일한 결과를 반환합니다. 인수 값; 즉, 데이터베이스 조회를 수행하지 않습니다. 또는 그 밖에 직접적으로 존재하지 않는 정보를 사용합니다. 인수 목록. 이 옵션이 주어지면 모두 상수 인수를 갖는 함수는 즉시 실행될 수 있습니다. 함수 값으로 대체되었습니다.

안정적이를 나타냅니다. 단일 테이블 스캔 함수는 일관되게 다음을 반환합니다. 동일한 인수 값에 대해 동일한 결과가 발생하지만 결과는 SQL 문 전체에서 변경될 수 있습니다. 이것은 결과가 다음에 따라 달라지는 함수에 대한 적절한 선택 데이터베이스 조회, 매개변수 변수(예: 현재 시간대) 등. 또한 다음 사항에 유의하세요.현재_타임스탬프함수 계열 그 값이 내부적으로 변하지 않기 때문에 안정적인 것으로 간주됩니다. 거래.

휘발성다음을 나타냅니다. 단일 테이블 스캔 내에서도 함수 값이 변경될 수 있으며, 그래서 최적화를 할 수 없습니다. 상대적으로 적은 수의 데이터베이스 이런 의미에서 함수는 휘발성입니다. 몇 가지 예는 다음과 같습니다무작위(), currval(), timeofday(). 다음과 같은 기능이 있다는 점에 유의하세요. 부작용은 설사 그것이라 할지라도 휘발성으로 분류되어야 합니다. 호출이 실패하는 것을 방지하기 위해 결과는 상당히 예측 가능합니다. 최적화되었습니다. 예는 다음과 같습니다setval().

NULL 입력 시 호출됨
NULL 입력 시 NULL 반환
STRICT

NULL 입력 시 호출됨( 기본값)은 함수가 호출될 것임을 나타냅니다. 일반적으로 인수 중 일부가 null인 경우입니다. 그때이다 null을 확인하는 함수 작성자의 책임 필요한 경우 가치를 평가하고 적절하게 대응하세요.

NULL 입력 시 NULL 반환또는STRICT함수를 나타냅니다. 인수 중 하나라도 null일 때마다 항상 null을 반환합니다. 이 매개변수를 지정하면 함수가 작동하지 않습니다. null 인수가 있을 때 실행됩니다. 대신 null 결과는 자동으로 가정됩니다.

[외부] 보안 호출자
[외부] 보안 정의자

보안 호출자다음을 나타냅니다. 이 기능은 다음의 권한으로 실행됩니다. 그것을 호출하는 사용자. 그게 기본값이에요.보안 정의자함수를 지정합니다. 해당 사용자의 권한으로 실행됩니다. 만들어냈습니다.

핵심 단어외부입니다 SQL 적합성을 위해 제공되지만 선택 사항입니다. SQL에서 이 기능은 외부에만 적용되는 것이 아닙니다. 기능.

정의

함수를 정의하는 문자열; 의미는 다음에 달려있다 언어. 내부 함수 이름, 경로일 수 있습니다. 객체 파일, SQL 명령 또는 절차의 텍스트 언어.

obj_file, link_symbol

이 형식은AS절은 동적으로 로드 가능한 C 언어 함수에 사용됩니다. C 언어 소스 코드의 함수 이름이 동일하지 않습니다. SQL 함수의 이름으로. 문자열obj_file파일 이름입니다 동적으로 로드 가능한 객체를 포함하고, 그리고link_symbol함수 링크입니다 기호, 즉 C 언어의 함수 이름 소스 코드. 링크기호가 생략된 경우로 간주 SQL 함수의 이름과 동일해야 합니다. 한정된.

속성

선택적인 부분을 지정하는 역사적 방법 기능에 대한 정보입니다. 다음 속성 여기에 나타날 수 있습니다:

isStrict

다음과 동일함STRICT또는NULL에 대해 NULL을 반환합니다. 입력

isCachable

isCachable구식입니다 에 해당함불변; 이전 버전과의 호환성을 위해 여전히 허용됩니다. 이유.

속성 이름은 대소문자를 구분하지 않습니다.

참고

참조PostgreSQL : 문서 : 7.4 : 사용자 토토 사이트 순위 토토 사이트 순위더 자세히 알아보기 쓰기 기능에 대한 정보입니다.

전체SQL유형 구문은 다음과 같습니다. 입력 인수 및 반환 값에 허용됩니다. 그러나 일부 유형 사양의 세부정보(예: 정밀도 필드 유형숫자)의 책임은 다음과 같습니다. 기본 기능 구현 및 자동으로 삼켜집니다. (즉, 인식되거나 시행되지 않음)함수 생성명령.

PostgreSQL토토 사이트 추천 허용오버로딩; 즉, 같은 이름이 될 수 있습니다. 여러 다른 기능을 가지고 있는 한 사용할 수 있습니다. 인수 유형이 다릅니다. 그러나 모든 함수의 C 이름은 달라야 하므로 오버로드된 C 함수를 제공해야 합니다. 다른 C 이름(예를 들어 인수 유형을 C 이름).

반복되는 경우함수 생성호출 동일한 객체 파일을 참조하면 파일은 한 번만 로드됩니다. 에게 파일을 언로드하고 다시 로드하고(아마도 개발 중에), 다음을 사용하세요.스포츠 토토 사이트 : 문서 : 7.4 :로드명령.

사용드롭 토토 사이트 추천제거하다 사용자 정의 함수.

함수 정의의 작은따옴표 또는 백슬래시 두 배로 늘려 이스케이프해야 합니다.

기능을 정의하려면 사용자는 다음을 가지고 있어야 합니다.사용언어에 대한 권한입니다.

다음은 시작하는 데 도움이 되는 간단한 예입니다. 더 알아보기 정보 및 예시는 참조PostgreSQL : 문서 : 7.4 : 사용자 토토 사이트 순위 토토 사이트 순위.

CREATE FUNCTION add(정수, 정수) RETURNS 정수
    AS '$1 + $2 선택;'
    언어 SQL
    불변
    NULL 입력 시 NULL을 반환합니다.

쓰기보안 정의자토토 사이트 추천 안전하게

왜냐하면 a보안 정의자함수 그것을 생성한 사용자의 권한으로 실행되므로 주의 기능이 오용되지 않도록 보장하는 것이 필요합니다. 을 위한 보안,검색_경로다음으로 설정되어야 합니다. 신뢰할 수 없는 사용자가 쓸 수 있는 스키마를 제외합니다. 이는 방지합니다 악의적인 사용자가 사용하는 개체를 가리는 개체를 생성하지 못하도록 방지 기능. 이와 관련하여 특히 중요한 것은 기본적으로 가장 먼저 검색되는 임시 테이블 스키마 일반적으로 누구나 쓸 수 있습니다. 안전한 배치가 가능합니다 임시 스키마를 마지막에 검색하도록 강제합니다. 이렇게 하려면 쓰다pg_temp의 마지막 항목으로검색_경로. 이 기능은 안전한 사용법:

함수 생성 check_password(TEXT, TEXT)
부울을 '로 반환합니다.
DECLARE가 BOOLEAN을 통과했습니다.
        old_path 텍스트;
시작하다
        -- 이전 search_path를 저장합니다. current_setting을 충족해야 합니다.
        -- 올바른 함수를 호출하는지 확인하기 위해
        old_path := pg_catalog.current_setting(''검색_경로'');

        -- 보안 검색_경로(신뢰할 수 있는 스키마, 'pg_temp'')를 설정합니다.
        -- 이전 값이 복원되도록 is_local = true로 설정합니다.
        -- 기능이 끝나기 전에 오류가 발생한 경우.
        PERFORM pg_catalog.set_config(''search_path'', ''admin, pg_temp'', true);

        -- 우리가 하려고 온 안전한 일이라면 뭐든지 하세요.
        SELECT (pwd = $2) INTO가 전달되었습니다.
        비밀번호에서
        사용자 이름 = $1;

        -- 호출자의 search_path를 복원합니다.
        실행 pg_catalog.set_config(''search_path'', old_path, true);

        반환이 통과되었습니다.
끝;
' LANGUAGE plpgsql 보안 정의자;

호환성

A 함수 생성명령이 정의되었습니다 SQL99에서. 그만큼PostgreSQL버전 비슷하지만 완전히 호환되지는 않습니다. 속성은 다음과 같습니다. 이식 가능하며 사용 가능한 언어도 다릅니다.