快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程电脑软件教程 → H2 数据库的 expected "identifier 错误

H2 数据库的 expected "identifier 错误

时间:2022-10-02 10:32:55人气:作者:快盘下载我要评论

尝试使用 H2 数据库创建表,但是老是提示 expected "identifier 这个错误。

H2 数据库的 expected "identifier 错误

问题和解决

经过搜索后才知道,上面的错误是因为我们使用的表名 USER 是 H2 的关键字。

H2 的关键字列表为:Advanced

很明显这里 是一个关键字。

可以:

简单粗暴的对使用的关键字使用单引号在JDBC 连接中使用 ;NON_KEYWORDS=USER

数据库关键字

到底应不应该使用 USER 作为用户表的命名呢?

搜索了下不同的说法,大部分都认为不应该将用户表的名称命名为 USER ,而应该使用 Person。

根据 ISO/IEC 11179-6:20 中规范的说法,我们应该避免使用 USER 来命名用户表,也不要使用 USERS 来命名。

数据库表的命名可以使用前缀和后缀的方式。

下面是有关的一些实例。

前缀

如果你的表可能超过有 100 个表的话,可以使用定义的前缀来命名,例如:

REF_ 为参考表OE_ 为 Order Entry 相关,这个值针对为物理级别的命名,而不是逻辑级别的

后缀

永远不要使用后缀来命名表,而应该使用后缀来命名其他的东西,但是这也不是绝对的的。 例如针对视图我们可以使用 _V 这个前缀来命名。

_fk 外键_cac 缓存_seg Segment_tr 事务_fn 函数等

总结

针对表的命名没有绝对的统一的说法,但是针对一个公司或者一个项目,最好使用统一命名的标准。

对表进行一些系统性的区分,能够让我们更好的区分用途。

例如: 系统表(S_)可以用来定义系统的基本信息,更多是元数据等,这些数据是有关于系统运行的,通常例如可以定义 系统用户表(S_USER)、系统角色表(S_ROLE)等。

这样可以有效的避免关键字冲突。

很多时候,可能觉得这个是不是有点麻烦呀,很多项目可能不会超过几百个表。

但,免不了一些奇葩项目,有上千个表,经历过一个不是非常复杂的逻辑项目,但是表有 1300 多个,真不知道这个表是怎么建的,并且是各种奇葩的命名都有。

另外,千万别用 tbl 作为前缀来命名表,简直就是脱了裤子放屁,谁不知道你这个表是 tbl?

https://www.ossez.com/t/h2-expected-identifier/14122

相关文章

  • 一步步带你设计MySQL索引数据结构

    一步步带你设计MySQL索引数据结构,想想我们生活中的例子,比如新华字典,我们有一个目录,目录根据拼音排序,内容包含了汉字位于字典中具体的的页码。聪明的你肯定也想到了,我们也可以借鉴这种思想,建立一个MySQL的目录,叫做“索引”。...
  • 影刀连接Mysql数据库

    影刀连接Mysql数据库,影刀配置连接mysql数据库基础版...

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。