码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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?

    H2 数据库的 expected "identifier 错误 - 数据库 - OSSEZ尝试使用 H2 数据库创建表,但是老是提示 expected "identifier 这个错误。 问题和解决经过搜索后才知道,上面的错误是因为我们使用的表名 USER 是 H2 的关键字。 H2 的关键字列表为:Advanced 很明显这里 是一个关键字。 可以: 简单粗暴的对使用的关键字使用单引号在JDBC 连接中使用 ;NON_KEYWORDS=USER数据库关键字到底应不应该使用 USER …https://www.ossez.com/t/h2-expected-identifier/14122

  • 相关阅读:
    Java的日期与时间之java.time.ZonedDateTime简介说明
    rust泛型
    考证必看 | PMP扫盲贴+PMP材料
    【数据结构】深度剖析最优建堆及堆的经典应用 - 堆排列与topk问题
    NLP(1)--NLP基础与自注意力机制
    【RocketMQ系列五】消息示例-顺序消息&延迟消息&广播消息的实现
    AntV可视化图表G2-柱状图
    前端面试题2
    前端工程化09-webpack静态的模块化打包工具(未完结)
    04 C++循环控制-课后巩固实训
  • 原文地址:https://blog.csdn.net/huyuchengus/article/details/127132542
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号