En PostgreSQL, los nombres sin comillas no distinguen entre mayúsculas y minúsculas. Así SELECT * FROM hello
y SELECT * FROM HELLO
son equivalentes.
Sin embargo, los nombres entrecomillados distinguen entre mayúsculas y minúsculas. SELECT * FROM "hello"
es no equivalente a SELECT * FROM "HELLO"
.
Para hacer un "puente" entre los nombres entre comillas y los nombres sin comillas, los nombres sin comillas se escriben implícitamente en minúsculas, por lo tanto hello
, HELLO
y HeLLo
son equivalentes a "hello"
, pero no a "HELLO"
o "HeLLo"
(¡UPS!).
Así, al crear entidades (tablas, vistas, procedimientos, etc.) en PostgreSQL, debe especificarlas sin comillas o entre comillas pero en minúsculas.
Para convertir tablas/vistas/etc existentes, puede usar algo como ALTER TABLE "FOO" RENAME TO "foo"
.
O intente modificar el volcado de MSSQL para que sea "compatible con PostgreSQL" (para que contenga foo
s o "foo"
s pero no "FOO"
s).
- Ya sea editando explícitamente el archivo de volcado. (Si está usando Linux, puede hacer
sed -r 's/"[^"]+"/\L\0/g' dumpfile
— sin embargo, tenga en cuenta que este comando también puede modificar el texto en cadenas literales). - O especificando algunas opciones al obtener un volcado de MSSQL. (No estoy seguro de si hay tales opciones en MSSQL, nunca lo usé, pero probablemente deberían existir tales opciones).