postgresql - "Syntax error at or near END"列名 END

标签 postgresql

我在 MYSQL 中有一个表,必须在 postgresql 中转换它。

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

create table emp(COMPLETE BOOLEAN NOT NULL, END BOOLEAN NOT NULL);

我得到的错误是

Error at Command Line : 27 Column : 1 Error report - SQL Error: ERROR: syntax error at or near "END" Position: 45

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

create table emp(COMPLETE BOOLEAN NOT NULL, END1 BOOLEAN NOT NULL);

请建议一种方法,通过它我可以创建带有 END 的列的名称。

最佳答案

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

create table emp(complete BOOLEAN NOT NULL, "end" BOOLEAN NOT NULL);

请注意,“quoted” 标识符区分大小写,它们不像不带引号的标识符那样大小写折叠。这符合 SQL 标准。更多信息,see the PostgreSQL documentation on lexical structure .

有一个 list of reserved words in the documentation .

关于postgresql - "Syntax error at or near END"列名 END,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22706458/

相关文章:

ruby - 上传数据库中的图片

sql - PostgreSQL 将列从整数转换为文本

postgresql - 在 postgres 中禁用 RETURNING on INSERT

postgresql - 如何监视尚未在 Postgres 中提交的事务以进行调试?

postgresql - postgresql 中的名称关键字

postgresql - 如何将 jsonb 列扫描到结构/指针的一部分?

qt - 为 Qt 5 安装 postgres 驱动程序

postgresql - 在 travis-ci 上查找 postgres 可执行文件

sql - 结合大小写不同

sql - 消息传递应用程序的复杂 SQL 查询