ventajas español dbms sql sql-server postgresql

español - sql server vs postgresql 2018



Postgres Case Sensitivity (1)

a_horse_with_no_name es correcto.

En PostgreSQL, los nombres sin comillas son sensibles a mayúsculas y minúsculas. Por lo tanto, SELECT * FROM hello y SELECT * FROM HELLO son equivalentes.

Sin embargo, los nombres citados distinguen entre mayúsculas y minúsculas. SELECT * FROM "hello" no es equivalente a SELECT * FROM "HELLO" .

Para hacer un "puente" entre los nombres entre comillas y los nombres sin comillas, los nombres sin comillas están implícitamente en minúsculas, por lo tanto hello , HELLO y HeLLo son equivalentes a "hello" , pero no a "HELLO" o "HeLLo" (¡OOPS!).

Por lo tanto, al crear entidades (tablas, vistas, procedimientos, etc.) en PostgreSQL, debe especificarlas sin comillas o con comillas pero con 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 hacerlo "compatible con PostgreSQL" (de modo que contenga foo s o "foo" s pero no "FOO" s).

  • Ya sea mediante la edición explícita del archivo de volcado. (Si está usando Linux, puede hacer el sed -r ''s/"[^"]+"//L/0/g'' dumpfile ; sin embargo, tenga en cuenta que este comando también puede modificar el texto en literales de cadena).
  • O especificando algunas opciones al obtener volcado de MSSQL. (No estoy seguro de si existen tales opciones en MSSQL, nunca las usé, pero probablemente deberían existir).

He importado 100 tablas en Postgres desde el servidor MSSql 2008 a través de la herramienta que creó todas las tablas junto con sus columnas en mayúscula . Ahora si quiero hacer una vista de datos desde la tabla, por ejemplo, STD_TYPE_CODES as-

select * from STD_TYPE_CODES

Estoy recibiendo error siguiente-

ERROR: relation "std_type_codes" does not exist LINE 1: select * from STD_TYPE_CODES ^ ********** Error ********** ERROR: relation "std_type_codes" does not exist SQL state: 42P01 Character: 15

Sé que puedo poner las comillas alrededor del nombre de la mesa as-

select * from "STD_TYPE_CODES"

Pero como he trabajado con MSSql Server, no existe tal problema. Entonces, ¿hay alguna manera de deshacerse de esto? Por favor ayuda.