在Postgres中转义类似关键字的列名
如果Postgres表中的列名称year
,如何看INSERT
查询来设置该列的值?
例如: INSERT INTO table (id, name, year) VALUES ( ... );
在年份词语附近给出一个错误。
只需将year
用双引号括起来即可将其解释为关键字 :
INSERT INTO table (id, name, "year") VALUES ( ... );
从文档 :
还有第二种标识符:分隔的标识符或带引号的标识符。 它是通过在双引号(“)中包含任意字符序列而形成的,分隔的标识符总是一个标识符,而不是一个关键字,所以”select“可以用来表示一个名为”select“的列或表。而未加引号的select将被视为关键字,因此在预期使用表或列名称时会引发parsing错误。