PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Escape di nomi di colonne simili a parole chiave in Postgres

Allega semplicemente year tra virgolette per evitare che venga interpretata come una parola chiave:

INSERT INTO table (id, name, "year") VALUES ( ... );

Dalla documentazione:

Esiste un secondo tipo di identificatore:l'identificatore delimitato o l'identificatore tra virgolette. È formato racchiudendo una sequenza arbitraria di caratteri tra virgolette ("). Un identificatore delimitato è sempre un identificatore, mai una parola chiave. Quindi "select" potrebbe essere usato per riferirsi a una colonna o a una tabella denominata "select", mentre un select verrebbe preso come una parola chiave e provocherebbe quindi un errore di analisi quando utilizzato dove è previsto un nome di tabella o colonna.