PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Warum wird ein Bezeichner in einer CREATE TABLE in doppelte Anführungszeichen gesetzt, die anderen jedoch nicht?

Gemäß Handbuch , position ist

Es ist ein reserviertes Wort in Standard-SQL. Was Sie sehen, ist wahrscheinlich die Ausgabe von pgAdmin oder ein anderer Client, der alle reservierten Wörter im SQL-Standard doppelt anführt, wenn sie als Bezeichner verwendet werden.

Diese Anweisung ist syntaktisch korrekt:

SELECT position FROM author LIMIT 1;

Sie können Bezeichner immer in doppelte Anführungszeichen setzen (wodurch die Groß-/Kleinschreibung beibehalten wird). Das geht auch:

SELECT "position" FROM author LIMIT 1;

Aber hier sind doppelte Anführungszeichen erforderlich:

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