0

我一直在开发一个 Express 应用程序,该应用程序的表单旨在保存行和引号。

有些行会有单引号('),但总的来说它能够存储信息,我能够备份它并毫无问题地存储它。现在,当我想要pg_dump将数据库放入 SQL 文件时,引号似乎会导致某些内容在我的文本编辑器中显得有些奇怪。

我是否必须创建一种方法将所有单引号更改为双引号,或者我可以保持原样并能够将其上传回数据库而不会造成重大问题。我知道人们会继续输入包含单引号或双引号的行,所以我想知道任何有很大帮助的解决方案或答案。

4

1 回答 1

3

字符数据类型中的单引号完全没有问题。您只需要在字符串文字中正确转义它们。

要写入数据,INSERT您需要根据 SQL 语法规则引用所有字符串文字。有一些工具可以为你做到这一点......

但是pg_dump会自动转义。默认模式生成要重新导入的文本输出COPY(比 快得多INSERT),并且单引号在那里没有特殊含义。在(非默认)csv模式下,默认引号字符是双引号 ( ") 并且可配置。手册:

QUOTE

指定引用数据值时要使用的引用字符。默认为双引号。这必须是一个单字节字符。CSV仅在使用格式时才允许使用此选项。

格式由 for 的规则定义,COPY而不是由 SQL 语法规则定义。

于 2016-11-19T01:40:59.973 回答