列名称为END的“ END处或附近的语法错误”

Sum*_*mit 2 postgresql

我在MYSQL中有一张表,必须在postgresql中将其转换。

我正在使用以下命令创建表。

create table emp(COMPLETE BOOLEAN NOT NULL, END BOOLEAN NOT NULL);
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

命令行错误:27列:1错误报告-SQL错误:错误:“ END”或附近的语法错误位置:45

但是,如果我将列名END更改为END1,则可以正常工作。

create table emp(COMPLETE BOOLEAN NOT NULL, END1 BOOLEAN NOT NULL);
Run Code Online (Sandbox Code Playgroud)

请提出一种使用END创建列名称的方法。

Cra*_*ger 5

END是一个关键字。(除其他外,它用在中CASE ... WHEN ... END)。您必须引用它才能将其用作标识符。

create table emp(complete BOOLEAN NOT NULL, "end" BOOLEAN NOT NULL);
Run Code Online (Sandbox Code Playgroud)

请注意,"quoted"标识符是大小写敏感的,他们都没有的情况下折叠喜欢不带引号的标识符。这是根据SQL标准制定的。有关更多信息,请参见有关词法结构的PostgreSQL文档。

文档中有保留字列表