sql - 在 linux 中插入数据时在 postgres 列中保留新行

标签 sql postgresql

我正在尝试插入一个包含换行符的字符串列的行。下面给出建表语句和插入查询。

create table stringtest(id int, inputstr character varying(200));

insert into stringtest values(1,'Name : NOC\r\n\r\nDetail : Detail');

插入查询正确执行。但是,当获取同一行时(当 postgres 在 linux 中时),inputstr 的值不会显示为新行,而是显示为

 id |                     inputstr
----+---------------------------------------------------
  1 | Name : NOC\r\n\r\nDetail : Detail

如果我们在窗口中执行相同的操作,我们将获得如下所示的所需结果集

ngnms=# select * from stringtest;
 id |          inputstr
----+----------------------------
  1 | Site Name : NOC\r         +
    | \r                        +
    | Device Detail : agentdname
(1 row)

应该如何使用新行而不是转义字符来获得所需的结果

要补充的是,如果使用copy插入同一行,新行会被妥善保存

最佳答案

我已经通过在带有换行符的字符串之前包含 E 来修复它,如下所示

insert into stringtest values(1,E'Name : NOC\r\n\r\nDetail : Detail');

关于sql - 在 linux 中插入数据时在 postgres 列中保留新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19698702/

相关文章:

java - 使用 id 生成器方法向数据库插入记录时,哪种数据类型更好?

sql - PostgreSQL - 逐秒创建 View

SQL查询获取两列的所有组合

sql - 多线程帮助/Powershell

sql - Django:在可以使用这种多对多关系之前,对象需要具有字段 "..."的值

sql - Postgresql 使用连接更新表

mysql - 从嵌套选择创建更新语句

mysql - SQL - 获取从当前日期开始显示的数据

sql-server - 从 Postgres 迁移到 SQL Server 2008

database - postgres 在 docker 容器中不起作用