解决方案:

将代码改成

insert into tblTest (text) values ('hello \n world');

如果不想看到WARNING信息,可以添加E选项

insert into tblTest (text) values (E 'hello \n world');

手册中有说明:

PostgreSQL还接受“escape”字符串常量,这是SQL标准的扩展。转义字符串常量是通过在开头单引号前写字母E(大写或小写)来指定的,例如E'foo'(当跨行继续转义字符串常量时,请仅在第一个开始引号之前写入E。)

在转义字符串中,反斜杠字符(\)开始类似于C的反斜杠转义序列,其中反斜杠和后面的字符的组合表示一个特殊的字节值\b是退格、\f是换行符、\n是换行符、\r是回车符、\t是制表符。还支持\doirts,其中doirts表示八进制字节值;和\xhexdoirts,其中hexdoirts表示十六进制字节值(您有责任确保您创建的字节序列是服务器字符集编码中的有效字符。)

反斜杠后面的任何其他字符都是按字面理解的。
因此,要包含反斜杠字符,请写两个反斜杠(\)。此外,除了常规的“”方式外,还可以通过写入\'将单引号包含在转义字符串中。
PostgreSQL WARNING: nonstandard use of escape in a string literal

在PostgreSQL中插入换行符报错:

insert into tblTest (text) values ('hello \n world');
日期:2020-03-23 20:35:33 来源:oir作者:oir