ale*_*yes 38 postgresql char sql-update
我正在尝试更新postgresql数据库的表中的文本字段.
UPDATE public.table SET long_text = 'First Line' + CHAR(10) + 'Second line.' WHERE id = 19;
Run Code Online (Sandbox Code Playgroud)
我的预期结果是单元格看起来像这样:
First Line Second line
上面的语法返回错误.
Mik*_*ll' 57
你想要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;
Run Code Online (Sandbox Code Playgroud)
' standard_conforming_strings ' 的默认值在9.1+中为'on'.
show standard_conforming_strings;
Run Code Online (Sandbox Code Playgroud)
Cra*_*ger 24
使用文字换行符(如果standard_conforming_strings = on你在最近的PostgreSQL上):
UPDATE public.table
SET long_text = 'First Line
Second line.'
WHERE id = 19;
Run Code Online (Sandbox Code Playgroud)
或者你可以使用逃脱:
UPDATE public.table
SET long_text = E'First Line\nSecond line.'
WHERE id = 19;
Run Code Online (Sandbox Code Playgroud)
在我的 postgres 版本中,\n 不适用于换行符,我使用 \r\n 代替,如下所示:
UPDATE public.table
SET long_text = E'First Liner\r\nSecond line.'
WHERE id = 19;
Run Code Online (Sandbox Code Playgroud)
PostgreSQL:
varchar + varchar = 错误。\r 和 \n 不在任何地方都可以工作,为了更好的兼容性使用:
更正:
UPDATE public.table SET
long_text = concat('First Line',CHR(13),CHR(10),'Second line.')
WHERE id = 19;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50288 次 |
| 最近记录: |