В 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"
.
Или опитайте да модифицирате dump от MSSQL, за да го направите "PostgreSQL-съвместим" (така че да съдържа foo
s или "foo"
s, но не и "FOO"
s).
- Или чрез изрично редактиране на дъмп файл. (Ако използвате Linux, можете да направите
sed -r 's/"[^"]+"/\L\0/g' dumpfile
— обаче имайте предвид, че тази команда може също да промени текста в низови литерали.) - Или като посочите някои опции при получаване на дъмп от MSSQL. (Не съм сигурен дали има такива опции в MSSQL, никога не съм го използвал, но вероятно такива опции трябва да съществуват.)