在Postgres中转义类似关键字的列名

如果Postgres表中的列名称year ,如何看INSERT查询来设置该列的值?

例如: INSERT INTO table (id, name, year) VALUES ( ... );年份词语附近给出一个错误。

只需将year用双引号括起来即可将其解释为关键字 :

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

从文档 :

还有第二种标识符:分隔的标识符或带引号的标识符。 它是通过在双引号(“)中包含任意字符序列而形成的,分隔的标识符总是一个标识符,而不是一个关键字,所以”select“可以用来表示一个名为”select“的列或表。而未加引号的select将被视为关键字,因此在预期使用表或列名称时会引发parsing错误。