PostgreSQL バックスラッシュのエスケープ
バックスラッシュを含む文字列を扱う
\\を含む文字列をUPDATE
pgdb=# UPDATE foo SET foo_name = '\\' WHERE foo_id = 100001;
WARNING: nonstandard use of \\ in a string literal
HINT: Use the escape string syntax for backslashes, e.g., E'\\'.
\r\nを含む文字列をUPDATE
pgdb=# UPDATE foo SET foo_name = '\r\n' WHERE foo_id = 100001;
WARNING: nonstandard use of \\ in a string literal
HINT: Use the escape string syntax for escapes, e.g., E'\r\n'.
いずれもエラーが発生してUPDATE失敗。
\\や\r\nに限らずバックスラッシュを含んだ文字列があると同様の警告が表示。
ヒントの通り該当文字列の直前にEを付けて実行する。
SQL
UPDATE foo SET foo_name = E'\\' WHERE foo_id = 100001;
UPDATE foo SET foo_name = E'\r\n' WHERE foo_id = 100001;