본문으로 건너뛰기

standard_conforming_strings

버전기본값context타입
14on (prior releases defaulted to off )userboolean
15on (prior releases defaulted to off )userboolean
16on (prior releases defaulted to off )userboolean
17on (prior releases defaulted to off )userboolean
18on (prior releases defaulted to off )userboolean
19userboolean

일반 문자열 리터럴('...')에서 backslash를 SQL 표준대로 문자 그대로 취급할지 정한다.

PostgreSQL 9.1부터 기본값이 on이다(이전 버전은 off였다). off이면 예전 PostgreSQL처럼 backslash가 이스케이프 문자로 동작한다. 애플리케이션은 이 파라미터 값을 조회해 문자열 리터럴이 어떻게 처리될지 판단할 수 있고, 파라미터의 존재 자체가 escape string 문법(E'...')이 지원된다는 표시이기도 하다. backslash를 이스케이프 문자로 쓰고 싶다면 일반 리터럴 대신 escape string 문법을 사용해야 한다.

운영 노트: 이 값을 off로 되돌리는 것은 아주 오래된 애플리케이션 호환 용도로만 고려한다. 클라이언트 라이브러리·드라이버는 대부분 on을 전제로 이스케이프를 처리하므로, 서버와 애플리케이션의 가정이 어긋나면 문자열 처리 버그나 injection 위험으로 이어질 수 있다.

출처: PostgreSQL 18 문서