standard_conforming_strings
是一个配置参数,用于确定是否按字面意思处理字符串文字('...'
)中的反斜杠(如SQL标准中所指定)。
standard_conforming_strings
在PostgreSQL 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_strings
为on
(自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
。