Postgresのエラー.
初めて知ったのでメモ.文字列リテラルの中で
INSERT INTO video (id, title) VALUES (1, 'C:\\hogehoge.flv');
の様にバックスラッシュを使う場合,
nonstandard use of \\ in a string literal
というエラーが出る.これを解決するにはヒントにしたがって
INSERT INTO video (id, title) VALUES (1, E'C:\\hogehoge.flv');
の様にすればいい.
マニュアルには,
PostgreSQLでは、また、"エスケープ"文字定数をを(原文ママ)受け付けます。これは標準SQLの拡張です。エスケープ文字定数は、開始単一引用符の直前にE(大文字でも小文字でもかまいません)を記述することで指定されます。例えばE'foo'です。(複数行に渡るエスケープ文字定数では、最初の開始引用符の前にのみEを記述してください。)エスケープ文字列の中では、バックスラッシュ文字(\)によりC言語のようなバックスラッシュシーケンスが始まります。
とかかれていました.元々,文字列定数にはエスケープ文字を書けないのか.