Si la columna en la tabla de Postgres tiene el nombre year
, ¿cómo debería verse la INSERT
consulta para establecer el valor de esa columna?
Por ejemplo: INSERT INTO table (id, name, year) VALUES ( ... );
da un error cerca de la palabra del año .
Si la columna en la tabla de Postgres tiene el nombre year
, ¿cómo debería verse la INSERT
consulta para establecer el valor de esa columna?
Por ejemplo: INSERT INTO table (id, name, year) VALUES ( ... );
da un error cerca de la palabra del año .
Respuestas:
Simplemente encierre year
entre comillas dobles para evitar que se interprete como una palabra clave :
INSERT INTO table (id, name, "year") VALUES ( ... );
De la documentación :
Hay un segundo tipo de identificador: el identificador delimitado o el identificador entre comillas. Se forma al encerrar una secuencia arbitraria de caracteres entre comillas dobles ("). Un identificador delimitado siempre es un identificador, nunca una palabra clave. Por lo tanto," select "podría usarse para referirse a una columna o tabla llamada" select ", mientras que una selección sin comillas se tomaría como una palabra clave y, por lo tanto, provocaría un error de análisis cuando se usa cuando se espera un nombre de tabla o columna.
update "user" set "password" = 'value...';
funciona perfectamente bien ...
Si no proporciona comillas en ningún campo / columna, Postgres lo pondrá en minúscula de forma predeterminada. Y Postgres omitirá la comprobación de la palabra clave cuando se trata del nombre de la columna.
En su caso, no creo que sea obligatorio agregar citas cuando se trata de columns
. Pero si está utilizando keywords
(registrada por Postgres) como el nombre de Table
, Schema
, Function
o Trigger
etc, que debe tener para utilizar comillas dobles, o puede especificar nombre de esquema con la concatenación de puntos.
Supongamos que orden es la palabra clave registrada por Postgres. Y en algunos escenarios, debe usar esta palabra clave como nombre de tabla.
En ese momento, Postgres te permitirá crear una tabla con keywords
. Esa es la belleza de Postgres.
Para acceder a la tabla de pedidos, debe utilizar una comilla doble o puede utilizar el nombre del esquema antes del nombre de la tabla.
P.EJ
1)
select * from schema_name.order;
2)
select * from "order";
Del mismo modo, puede usar este tipo de combinación. Espero que esto te ayudará.
MyTable
,myTable
ymytable
son lo mismo. Con las comillas este plegado no se realiza. Entonces"MyTable"
ya no es lo mismo quemytable
.