PostgreSQLでは、引用符で囲まれていない名前は大文字と小文字を区別しません。したがって、SELECT * FROM hello
およびSELECT * FROM HELLO
同等です。
ただし、引用符で囲まれた名前では大文字と小文字が区別されます。 SELECT * FROM "hello"
ではありません SELECT * FROM "HELLO"
と同等 。
引用符で囲まれた名前と引用符で囲まれていない名前の間に「ブリッジ」を作成するために、引用符で囲まれていない名前は暗黙的に小文字になります。したがって、hello
、HELLO
およびHeLLo
"hello"
と同等です 、ただし"HELLO"
ではありません または"HeLLo"
(おっと!)。
したがって、作成時 PostgreSQLのエンティティ(テーブル、ビュー、プロシージャなど)は、引用符で囲まれていないか、引用符で囲まれているが小文字で指定する必要があります。
既存のテーブル/ビューなどを変換するには、ALTER TABLE "FOO" RENAME TO "foo"
のようなものを使用できます。 。
または、MSSQLからのダンプを「PostgreSQL互換」に変更してみてください(foo
が含まれるようにします)。 sまたは"foo"
sただし、"FOO"
ではありません s)。
- ダンプファイルを明示的に編集する。 (Linuxを使用している場合は、
sed -r 's/"[^"]+"/\L\0/g' dumpfile
を実行できます。 —ただし、このコマンドは文字列リテラルのテキストも変更する可能性があることに注意してください。) - または、MSSQLからダンプを取得するときにいくつかのオプションを指定します。 (MSSQLにそのようなオプションがあるかどうかはわかりませんが、使用したことはありませんが、おそらくそのようなオプションは存在するはずです。)