sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Por qué un identificador en CREATE TABLE tiene comillas dobles, pero no los demás?

Según el manual , position es

Es una palabra reservada en SQL estándar. Lo que ves es probablemente el resultado de pgAdmin o algún otro cliente que entre comillas dobles todas las palabras reservadas en el estándar SQL cuando se usan como identificadores.

Esta declaración es sintácticamente correcta:

SELECT position FROM author LIMIT 1;

Tu puedes siempre entre comillas dobles en los identificadores (conservando así la ortografía de mayúsculas y minúsculas). Esto también funciona:

SELECT "position" FROM author LIMIT 1;

Pero aquí se requieren comillas dobles:

SELECT "where" FROM author LIMIT 1;
SELECT "CaMeL" FROM author LIMIT 1;
SELECT "a-b-c" FROM author LIMIT 1;