backslash_quote

控制单引号在字符串字面量中表示方式的 GUC

backslash_quote 是一个 配置参数,用于确定在字符串字面量中是否可以使用 \' 来表示单引号。

backslash_quotePostgreSQL 8.2 中被添加。

默认

backslash_quote 的默认值为:safe_encoding

用法

在标准的 SQL 中,字符串字面量中的单引号(')通过将其加倍('')来表示,例如:

SELECT 'hello ''world''!'

然而,PostgreSQL 历史上也接受反斜杠转义的形式(\'),例如:

SELECT 'hello \'world\'!'

这在某些客户端字符集编码下可能存在潜在的安全漏洞。

backslash_quote 可以设置为以下值之一:

  • 开启
  • off
  • safe_encoding

on 表示在所有情况下都接受 \'

off 则禁止使用 \',如果检测到它,将引发一个 ERROR

safe_encoding(默认值)表示仅当客户端编码不允许在多字节字符内包含 ASCII \ 时,才接受 \'

请注意,backslash_quote 仅在以下情况下生效:

按 PostgreSQL 版本详细信息

backslash_quote (PostgreSQL 19)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  
需要重启 false

文档backslash_quote

backslash_quote (PostgreSQL 18)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  
需要重启 false

文档backslash_quote

backslash_quote (PostgreSQL 17)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  
需要重启 false

文档backslash_quote

backslash_quote (PostgreSQL 16)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  
需要重启 false

文档backslash_quote

backslash_quote (PostgreSQL 15)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  
需要重启 false

文档backslash_quote

backslash_quote (PostgreSQL 14)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  
需要重启 false

文档backslash_quote

backslash_quote (PostgreSQL 13)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  
需要重启 false

文档backslash_quote

backslash_quote (PostgreSQL 12)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  
需要重启 false

文档backslash_quote

backslash_quote (PostgreSQL 11)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  
需要重启 false

文档backslash_quote

backslash_quote (PostgreSQL 10)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  
需要重启 false

文档backslash_quote

backslash_quote (PostgreSQL 9.6)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  
需要重启 false

文档backslash_quote

backslash_quote (PostgreSQL 9.5)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  
需要重启 false

文档backslash_quote

backslash_quote (PostgreSQL 9.4)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  

文档backslash_quote

backslash_quote (PostgreSQL 9.3)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  

文档backslash_quote

backslash_quote (PostgreSQL 9.2)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  

文档backslash_quote

backslash_quote (PostgreSQL 9.1)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  

文档backslash_quote

backslash_quote (PostgreSQL 9.0)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  

文档backslash_quote

backslash_quote (PostgreSQL 8.4)

设置 safe_encoding
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述  
上下文 user
变量类型 enum
来源 默认
最小值  
最大值  
枚举值 safe_encoding, on, off
启动值 safe_encoding
重置值 safe_encoding
源文件  
源行  

文档backslash_quote

backslash_quote (PostgreSQL 8.3)

设置  
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述 有效值为 ON、OFF 和 SAFE_ENCODING。
上下文 user
变量类型 string
来源 默认
最小值  
最大值  

文档backslash_quote

backslash_quote (PostgreSQL 8.2)

设置  
单位  
类别 版本和平台兼容性 / 之前的 PostgreSQL 版本
简短描述 设置是否允许在字符串字面量中使用 "\'"。
扩展描述 有效值为 ON、OFF 和 SAFE_ENCODING。
上下文 user
变量类型 string
来源 默认
最小值  
最大值  

文档backslash_quote

变更历史

示例

backslash_quote 的基本用法示例

postgres=# SHOW backslash_quote;
 backslash_quote 
-----------------
 safe_encoding
(1 row)

postgres=# SELECT E'hello \'world\'!';
    ?column?    
----------------
 hello 'world'!
(1 row)

postgres=# SET backslash_quote TO off;
SET
postgres=# SELECT E'hello \'world\'!';
ERROR:  unsafe use of \' in a string literal
LINE 1: SELECT E'hello \'world\'!';
               ^
HINT:  Use '' to write quotes in strings. \' is insecure in client-only encodings.

分类

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

另请参阅

standard_conforming_strings, escape_string_warning

反馈

提交关于“backslash_quote”的任何评论、建议或更正,请点击 这里