我的postgresql数据库有一个非常奇怪的问题。我有一张名为"声明"其中有一些奇怪的记录。
使用命令行控制台psql,我查询select * from customer.statement where type in ('QUOTE');
并返回12行。 7行看起来很正常,5个缺少除了单个列之外的所有数据,该列是可以为空的列但似乎保持用户输入的实际值。 psql告诉我,即使有12行也会返回7行。其他大多数列都不可为空。奇怪的记录看起来像这样:
select * from customer.statement where type = 'QUOTE';
id | issuer_id | recipient_id | recipient_name | recipient_reference | source_statement_id | catalogue_id | reference | issue_date | due_date | description | total | currency | type | tax_level | rounding_mode | status | recall_requested | time_created | time_updated | time_paid
------------------+------------------+------------------+----------------+---------------------+---------------------+--------------+-----------+------------+------------+------------------------------------------------------------------+-----------+----------+-------+-----------+---------------+-----------+------------------+----------------------------+----------------------------+-----------
... 7 valid records removed ...
| | | | | | | | | | Build bulkheads and sheet with plasterboard. +| | | | | | | | | |
| | | | | | | | | | Patch all patches. +| | | | | | | | | |
| | | | | | | | | | Set and sand all joints ready for painting. +| | | | | | | | | |
| | | | | | | | | | Use wall angle on bulkhead in main bedroom. +| | | | | | | | | |
| | | | | | | | | | Build nib and sheet and set in entrance | | | | | | | | | |
(7 rows)
如果我使用pgAdmin运行相同的查询,我就不会看到那些奇怪的记录。
有谁知道这些是什么?
答案 0 :(得分:2)
分隔符前面的加号(+|
)表示 psql 中显示的字符串值中的换行符。所以没有额外的行,只有同一行继续换行。报价中的最后一行输出确认了(7 rows)
。
在pgAdmin中,只要不增加字段的高度(或在某处复制/粘贴内容),就不会看到额外的行,但也有多行。
尝试使用psql和pgAdmin:
test=# SELECT E'This\nis\na\ntest.' AS multi_line, 'foo' AS single_line;
multi_line | single_line
--------------+-------------
This +| foo
is +|
a +|
test. |
(1 row)
linestyle
将边框线绘图样式设置为
ascii
,old-ascii
或unicode
之一。 [...]默认设置为ascii
。 [...]
ascii
样式使用纯ASCII字符。数据的换行符使用右侧边距中的+
符号显示。 [...]