首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么反斜杠在SQL的字符串编码中加倍?

问为什么反斜杠在SQL的字符串编码中加倍?
EN

Database Administration用户
提问于 2023-04-11 01:45:16
回答 1查看 484关注 0票数 2

Postgres文档声明:

虽然指定字符串常量的标准语法通常很方便,但当所需的字符串包含许多单引号或反斜杠时,可能很难理解,因为每个字符串都必须加倍。

我理解单引号是如何加倍的,因为字符串常量上的第4.1.2.1节就是这样转义的。但如果反斜杠翻了一番,这肯定是不可能的:

代码语言:javascript
复制
janus=> \d todo
                            Table "public.todo"
 Column |  Type   | Collation | Nullable |             Default              
--------+---------+-----------+----------+----------------------------------
 id     | integer |           | not null | nextval('todo_id_seq'::regclass)
 descr  | text    |           |          | 
 done   | boolean |           |          | 

janus=> truncate table todo;
TRUNCATE TABLE
janus=> insert into todo (descr,done) values ('\''', false);
INSERT 0 1
janus=> select length(descr), descr from todo;
 length | descr 
--------+-------
      2 | \'
(1 row)

如您所见,两个单引号(被解释为一个单引号)前面的反斜杠没有作用,而是按字面插入。那么,如何引用与反斜杠交互的引号中引用的“标准”语法呢?他们似乎没有任何特殊的待遇,他们就像任何其他的性格。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2023-04-11 07:56:53

您引用的文档是9.1版本之前的遗留文档,而在默认情况下,standard_conforming_strings是off。从9.1开始,这已经过时了,而我已经提出了一个补丁则将其删除。

票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/325850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档