如何使用看起来像 HSQLDB 关键字的列名创建表?

Posted

技术标签:

【中文标题】如何使用看起来像 HSQLDB 关键字的列名创建表?【英文标题】:How to create table with column names that look like HSQLDB keywords? 【发布时间】:2009-11-20 06:51:55 【问题描述】:

以下 SQL 不会被 HSQLDB 接受,因为名称 'position' 是关键字。

创建内存表 bb(位置 bigint)

如何在不更改列名的情况下创建此表?

【问题讨论】:

【参考方案1】:

来自HSQLDB User Guide:

所有关键字,可用于数据库 如果对象被双引号括起来。

所以你的陈述应该简单地写成:

CREATE MEMORY TABLE bb ("position" bigint)

【讨论】:

+1:卓越的知识来拯救。抱歉从你那里抢了! 一点也没有——我实际上感觉不好回答,因为它真的是更好的谷歌搜索救援。很高兴你得到了绿色勾号。【参考方案2】:

我不知道 HSQLDB,但有些 SQL 允许您使用特殊引号来强制它们接受保留标识符。

我建议先尝试单引号,然后再使用反引号。如果这不起作用,希望其他人发布一些有用的东西! :)

【讨论】:

如果我没有说清楚,我打算尝试引用 'position' 和 position 哦,我已经尝试了几个报价。 CREATE MEMORY TABLE bb ("position" bigint) 有效。谢谢

以上是关于如何使用看起来像 HSQLDB 关键字的列名创建表?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理看起来像 SQL 关键字的 SQL 列名?

使用 HSQLDB 比较 Openoffice 数据库中的日期

小写的 HSQLDB 列名和表名

HSQLDB: INSERT INTO ... (SELECT NULL, * FROM) 导致“列名重复”

如何在 HsqlDB 上将 MEMORY 表转换为 CACHED 表?

如何告诉 HSQLDB 允许为 SERIAL 定义身份?