PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Pourquoi un identifiant dans un CREATE TABLE est-il entre guillemets, mais pas les autres ?

Selon le manuel , position est

C'est un mot réservé en SQL standard. Ce que vous voyez est probablement la sortie de pgAdmin ou un autre client qui met entre guillemets tous les mots réservés dans la norme SQL lorsqu'ils sont utilisés comme identifiants.

Cette déclaration est syntaxiquement correcte :

SELECT position FROM author LIMIT 1;

Vous pouvez toujours les identificateurs entre guillemets doubles (préservant ainsi l'orthographe à casse mixte). Cela fonctionne aussi :

SELECT "position" FROM author LIMIT 1;

Mais les guillemets doubles sont obligatoires ici :

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