다음을 사용하세요상승보고할 성명 메시지가 표시되고 롤 토토가 발생합니다.
상승레벨 '형식' [, 변수 [, ...]];
가능한 수준은디버그, 로그, 정보, 공지, 경고및예외. 예외오류를 발생시키고 현재를 중단합니다. 거래; 다른 수준에서는 다른 메시지만 생성합니다. 우선 순위 수준. 특정 우선순위의 메시지가 클라이언트에 보고되거나, 서버 로그에 기록되거나, 둘 다 에 의해 제어됨log_min_messages그리고client_min_messages구성 변수. 참조사설 토토 : 문서 : 7.4 : 런타임 구성용 자세한 정보.
형식 문자열 내부,%이다 다음 선택적 인수의 문자열 표현으로 대체됩니다. 쓰기%%리터럴을 내보내다%. 현재 선택적 인수는 다음과 같아야 합니다. 표현식이 아닌 단순 변수여야 하며 형식은 다음과 같아야 합니다. 간단한 문자열 리터럴.
이 예에서 값은v_job_id다음을 대체합니다%문자열에서:
RAISE NOTICE ''cs_create_job(%) 호출 중'', v_job_id;
이 예는 주어진 롤 토토로 인해 거래를 중단합니다 메시지:
예외 발생 ''존재하지 않는 ID -- %'', user_id;
PostgreSQL이 없습니다 매우 똑똑한 예외 처리 모델. 파서가 실행될 때마다, 플래너/옵티마이저 또는 실행자는 명령문이 다음과 같이 결정될 수 없다고 결정합니다. 더 이상 처리되지 않으면 전체 거래가 중단되고 시스템은 다음 명령을 받기 위해 메인 루프로 다시 점프합니다. 클라이언트 애플리케이션.
오류 메커니즘에 연결하여 다음을 알 수 있습니다. 이런 일이 발생합니다. 하지만 현재로서는 실제로 무엇인지 알 수 없습니다. 중단이 발생했습니다(데이터 유형 형식 오류, 부동 소수점 오류, 구문 분석 오류 등). 그리고 데이터베이스 서버가 이 시점에서는 일관성이 없는 상태이므로 상위 실행 프로그램을 실행하거나 더 많은 명령을 실행하면 전체가 손상될 수 있습니다. 데이터베이스.
그래서 유일한 것은PL/pgSQL현재 실행 중 중단이 발생하면 발생합니다. 함수 또는 트리거 프로시저에 일부 필드를 추가하는 것입니다. 어떤 기능이 어디에 있는지 알려주는 메시지(줄 번호 및 유형 문) 오류가 발생했습니다. 오류가 항상 중지됩니다. 함수를 실행합니다.