我在MYSQL中有一个表,必须在postgresql中转换它。
我使用以下命令创建表。
create table emp(COMPLETE BOOLEAN NOT NULL, END BOOLEAN NOT NULL);
错误,我得到的是
命令行出错:27列:1错误报告 - SQL错误:错误: “END”或附近的语法错误位置:45
但是如果我将列名END更改为END1,那么它可以正常工作。
create table emp(COMPLETE BOOLEAN NOT NULL, END1 BOOLEAN NOT NULL);
请建议一种方法,我可以使用END创建列的名称。
答案 0 :(得分:4)
END
是一个关键字。 (除其他外,它在CASE ... WHEN ... END
中使用)。您必须引用它以将其用作标识符。
create table emp(complete BOOLEAN NOT NULL, "end" BOOLEAN NOT NULL);
请注意,"quoted"
标识符区分大小写,它们不是大小写,就像不带引号的标识符一样。这符合SQL标准。有关详细信息,请see the PostgreSQL documentation on lexical structure。
答案 1 :(得分:1)
使用关键字作为表名时会出现问题。最好的方法是使用其他一些名称。
答案 2 :(得分:0)
请为您的列选择其他名称,因为END是关键字。我们不能使用与关键字相同的列名。
答案 3 :(得分:0)
您正在使用SQL保留字作为变量名。为了您的最大便携性 数据管理器之间的应用程序,您不应使用此列表中的任何保留字 作为文件类或变量名。 你甚至可以使用_END,END1 ...... 这是SQL的保留字列表。 http://www.tigerlogic.com/tigerlogic/omnis/download/manuals/SQLReservedWords.pdf