我一直在开发一个 Express 应用程序,该应用程序的表单旨在保存行和引号。
有些行会有单引号('
),但总的来说它能够存储信息,我能够备份它并毫无问题地存储它。现在,当我想要pg_dump
将数据库放入 SQL 文件时,引号似乎会导致某些内容在我的文本编辑器中显得有些奇怪。
我是否必须创建一种方法将所有单引号更改为双引号,或者我可以保持原样并能够将其上传回数据库而不会造成重大问题。我知道人们会继续输入包含单引号或双引号的行,所以我想知道任何有很大帮助的解决方案或答案。
我一直在开发一个 Express 应用程序,该应用程序的表单旨在保存行和引号。
有些行会有单引号('
),但总的来说它能够存储信息,我能够备份它并毫无问题地存储它。现在,当我想要pg_dump
将数据库放入 SQL 文件时,引号似乎会导致某些内容在我的文本编辑器中显得有些奇怪。
我是否必须创建一种方法将所有单引号更改为双引号,或者我可以保持原样并能够将其上传回数据库而不会造成重大问题。我知道人们会继续输入包含单引号或双引号的行,所以我想知道任何有很大帮助的解决方案或答案。
字符数据类型中的单引号完全没有问题。您只需要在字符串文字中正确转义它们。
要写入数据,INSERT
您需要根据 SQL 语法规则引用所有字符串文字。有一些工具可以为你做到这一点......
但是,pg_dump
会自动转义。默认模式生成要重新导入的文本输出COPY
(比 快得多INSERT
),并且单引号在那里没有特殊含义。在(非默认)csv
模式下,默认引号字符是双引号 ( "
) 并且可配置。手册:
QUOTE
指定引用数据值时要使用的引用字符。默认为双引号。这必须是一个单字节字符。
CSV
仅在使用格式时才允许使用此选项。
格式由 for 的规则定义,COPY
而不是由 SQL 语法规则定义。