Postgresqlデータベースのテーブルのテキストフィールドを更新しようとしています。
UPDATE public.table SET long_text = 'First Line' + CHAR(10) + 'Second line.' WHERE id = 19;
私の意図した結果は、セルが次のようになることです。
1行目 2行目
上記の構文はエラーを返します。
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;
9.1+では、「 standard_conforming_strings 」のデフォルト値は「on」です。
show standard_conforming_strings;
リテラル改行を使用します(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;
私のバージョンのpostgresでは、\ nは改行に対して機能しませんでしたが、代わりに\ r\nを使用しました:
UPDATE public.table
SET long_text = E'First Liner\r\nSecond line.'
WHERE id = 19;