PostgreSQL で改行を含む文字列で Insert・Update・カラムコメントを付ける

PostgreSQL (ポスグレ・エスキューエル) を使い始めた。Oracle より柔軟性がある感じがする。

今回は改行を含む文字列で Insert・Update したり、テーブル・カラムにコメントを付けたりする方法を紹介。

方法1 : chr() を使う

chr(13) で CR、chr(10) で LF が入れられるので、コレを || で結合して使う。

INSERT INTO hoge_table (column_1) VALUES ('何らかの文字' || chr(10) || 'これで改行できる');
UPDATE hoge_tagle SET column_1 = '何らかの文字' || chr(10) || 'これで改行できる';

COMMENT ON TABLE hoge_table IS '何らかの文字' || chr(10) || 'これで改行できる';
COMMENT ON COLUMN hoge_table.column_1 IS '何らかの文字' || chr(10) || 'これで改行できる';

この方法は Oracle とかでも使えるので一般的かも。

方法2 : E オプションを使う

文字列を示すシングルクォートの直前に E と付けると、文字列中に \n とか \r とか書いた部分が改行コードとして認識されるようになる。「E'' 文字列構文」と呼ぶみたい。

INSERT INTO hoge_table (column_1) VALUES (E'こうやって\n改行できる。';);
UPDATE hoge_tagle SET column_1 = E'こうやって\n改行できる。';

COMMENT ON TABLE hoge_table IS E'こうやって\n改行できる。';
COMMENT ON COLUMN hoge_table.column_1 IS E'こうやって\n改行できる。';