standard_conforming_strings

控制是否按字面意思处理反斜杠的GUC

standard_conforming_strings 是一个配置参数,用于确定是否按字面意思处理字符串文字('...')中的反斜杠(如SQL标准中所指定)。

standard_conforming_stringsPostgreSQL 8.1中添加。

默认

standard_conforming_strings 的默认值为:on

用法

PostgreSQL 8.1之前,字符串文字中的反斜杠始终被解释为引入转义序列,例如'\n'(换行符),这与SQL标准的行为不符。

PostgreSQL 8.1中,引入了E''语法来显式地表示应处理转义序列的字符串文字。

PostgreSQL 9.1开始,standard_conforming_strings 默认设置为on,但可以设置为off 以恢复PostgreSQL 8.1之前的默认行为。但是,不建议这样做,除非显式禁用,否则每次处理包含转义序列的字符串文字时都会发出WARNING警告(参见下面的示例)。

psql

请注意,在psql中,只有当standard_conforming_strings 设置为off时,才能使用单引号的转义形式(\'),否则psql将无法正确解析字符串文字(参见下面的示例)。

按PostgreSQL版本详细说明

standard_conforming_strings (PostgreSQL 18)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
需要重启 false

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 17)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
需要重启 false

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 16)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
需要重启 false

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 15)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
需要重启 false

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 14)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
需要重启 false

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 13)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
需要重启 false

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 12)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
需要重启 false

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 11)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
需要重启 false

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 10)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
需要重启 false

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 9.6)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
需要重启 false

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 9.5)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
需要重启 false

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 9.4)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 9.3)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 9.2)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 9.1)

设置 on
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 9.0)

设置 off
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源代码行号  

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 8.4)

设置 off
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源代码行号  

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 8.3)

设置  
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 使'...'字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  

文档: standard_conforming_strings

standard_conforming_strings (PostgreSQL 8.2)

设置  
单位  
类别 版本和平台兼容性/之前的PostgreSQL版本
简短描述 '...' 字符串按字面意思处理反斜杠。
额外描述  
上下文 用户
变量类型 bool
来源 默认值
最小值  
最大值  

文档: standard_conforming_strings

更改历史

示例

standard_conforming_stringson(自PostgreSQL 9.1以来的默认值)时的用法示例 - 此处'\n'字符序列按字面意思解释

postgres=# SELECT 'hello \nworld';
   ?column?    
---------------
 hello \nworld
(1 row)

standard_conforming_strings 设置为off时,'\n'字符序列被视为换行转义序列

postgres=# SELECT 'hello \nworld';
WARNING:  nonstandard use of escape in a string literal
LINE 1: SELECT 'hello \nworld';
               ^
HINT:  Use the escape string syntax for escapes, e.g., E'\r\n'.
 ?column? 
----------
 hello   +
 world
(1 row)

请注意,可以通过将escape_string_warning 设置为off来禁用WARNING警告

postgres=# SET escape_string_warning TO off;
SET
postgres=# SELECT 'hello \nworld'; ?column? ---------- hello + world (1 row)

只有当standard_conforming_strings 设置为off时,psql才能解析转义的单引号(\')。

postgres=# SELECT 'hello \'world\'';
invalid command \'';
Try \? for help.
           ^C

postgres=# SET standard_conforming_strings TO off;
SET

postgres=# SELECT 'hello \'world\'';
WARNING:  nonstandard use of \' in a string literal
LINE 1: SELECT 'hello \'world\'';
               ^
HINT:  Use '' to write quotes in strings, or use the escape string syntax (E'...').
   ?column?    
---------------
 hello 'world'
(1 row)

有关上述警告的更多详细信息,请参阅backslash_quote

分类

向后兼容性GUC配置项字符串操作

另请参阅

escape_string_warningbackslash_quote

反馈

请在此提交关于"standard_conforming_strings"的任何评论、建议或更正 此处