Insert line break in postgresql when updating text field

前端 未结 4 2013
小鲜肉
小鲜肉 2020-12-29 18:13

I am trying to update a text field in a table of my postgresql database.

UPDATE public.table SET long_text = \'First Line\' + CHAR(10) + \'Second line.\' WHE         


        
相关标签:
4条回答
  • 2020-12-29 18:26

    Use a literal newline (if standard_conforming_strings = on, i.e. you're on a recent PostgreSQL):

    UPDATE public.table 
    SET long_text = 'First Line
    Second line.' 
    WHERE id = 19;
    

    or you can use an escape:

    UPDATE public.table 
    SET long_text = E'First Line\nSecond line.'
    WHERE id = 19;
    
    0 讨论(0)
  • 2020-12-29 18:29

    PostgreSQL:

    varchar + varchar = ERROR. \ r and \ n is not anywhere that works, for greater compatibility use:

    Corret:

    UPDATE public.table SET 
       long_text = concat('First Line',CHR(13),CHR(10),'Second line.')
    WHERE id = 19;
    
    0 讨论(0)
  • 2020-12-29 18:44

    You want chr(10) instead of char(10).

    Be careful with this, because that might be the wrong newline. The "right" newline depends on the client that consumes it. Macs, Windows, and Linux all use different newlines. A browser will expect <br />.

    It might be safest to write your update like this for PostgreSQL 9.1+. But read the docs linked below.

    UPDATE public.table 
    SET long_text = E'First Line\nSecond line.' 
    WHERE id = 19;
    

    The default value of 'standard_conforming_strings' is 'on' in 9.1+.

    show standard_conforming_strings;
    
    0 讨论(0)
  • 2020-12-29 18:45

    In my version of postgres, \n didnt work for line break and i used \r\n instead, like this:

    UPDATE public.table 
    SET long_text = E'First Liner\r\nSecond line.'
    WHERE id = 19;
    
    0 讨论(0)
提交回复
热议问题