我正在尝试更新postgresql数据库表格中的文本字段。
UPDATE public.table SET long_text = 'First Line' + CHAR(10) + 'Second line.' WHERE id = 19;
我的预期结果是细胞看起来像这样:
First Line Second line
以上语法会返回错误。
答案 0 :(得分:50)
您希望chr(10)
代替char(10)
。
小心这一点,因为这可能是错误的换行符。 “正确”的换行符取决于使用它的客户端。 Mac,Windows和Linux都使用不同的换行符。浏览器需要<br />
。
为PostgreSQL 9.1+编写这样的更新可能是最安全的。但请阅读下面链接的文档。
UPDATE public.table
SET long_text = E'First Line\nSecond line.'
WHERE id = 19;
“+ standard_conforming_strings”的默认值在9.1 +中为“开启”。
show standard_conforming_strings;
答案 1 :(得分:24)
使用文字换行符(如果standard_conforming_strings = on
,即你最近的PostgreSQL):
UPDATE public.table
SET long_text = 'First Line
Second line.'
WHERE id = 19;
或者您可以使用转义:
UPDATE public.table
SET long_text = E'First Line\nSecond line.'
WHERE id = 19;
答案 2 :(得分:3)
在我的postgres版本中,\ n没有用于换行符,而是使用\ r \ n来代替,如下所示:
UPDATE public.table
SET long_text = E'First Liner\r\nSecond line.'
WHERE id = 19;
答案 3 :(得分:0)
PostgreSQL:
varchar + varchar =错误。 \ r和\ n在任何地方都不起作用,为了更大的兼容性使用:
Corret:
UPDATE public.table SET
long_text = concat('First Line',CHR(13),CHR(10),'Second line.')
WHERE id = 19;