当前位置: 首页 > 知识库问答 >
问题:

H2错误或将表从PascalCase重命名为snake_case

金英华
2023-03-14
Caused by: org.h2.jdbc.JdbcSQLException: Table "INSTITUTION" already exists; SQL statement:
ALTER TABLE PUBLIC.Institution RENAME TO institution [42101-196]  

请救命!:(

共有1个答案

宋景福
2023-03-14

H2将未加引号的表名引用转换为大写。如果用双引号引用目标名称:

ALTER TABLE Institution RENAME TO "institution"

...将Institution表重命名为Institution

您的JPA实现可能必须配置为从现在开始引用表名。对于hibernate,可以使用hibernate.globally_quoted_identifiers=true

 类似资料:
  • 问题内容: AngularJS中用$前缀为提供者的约定是什么?我应该在自己的代码中为所有自定义服务添加前缀吗? 看起来angular附带的所有东西都带有前缀服务,例如。但是,在大多数文章中都没有以控制器为前缀。此外,所有角度代码都带有以中命名的服务,但是我也在许多在线博客中看到过。约定是哪一个? 问题答案: docs声明了内部服务的约定,但同时也声明您不应为自己的服务使用此约定以减少命名冲突。 h

  • 问题内容: 我有一个sql脚本(这只是架构定义)。该脚本是mysql dumb的修改版本(摆脱了h2不喜欢的坏字符)。 该脚本将运行,并且该架构已插入到h2数据库中,但是问题在于所有数据库名称都使用大写形式(“ xyz”被转换为“ XYZ”)。 我需要它们保持小写字母,因为我的应用程序正在寻找小写字母(而mysql db中的所有表都是小写字母)。 为什么会这样呢?我怎样才能告诉H2不这样做?有没有

  • 问题内容: 因此,我试图将主键添加到数据库中的表之一。现在,它具有这样的主键: 其中user_id是外键。 我正在尝试将其更改为: 我在phpmyadmin中通过单击表结构视图中的主键图标来执行此操作。 这是我得到的错误: 它是带有InnoDB表引擎的MySQL数据库。 问题答案: 可能还有另一个带有外键的表,该表引用了您要更改的主键。 要找出导致错误的表,您可以运行,然后查看部分。

  • 我有这个附件 当达到5 MB并且/var/log/mylog上没有空间时,我会收到错误,如果我在之后留出空间,记录器不会再次尝试重命名文件。有什么办法可以解决吗? 我使用log4j22.2

  • 主要内容:语法,示例SQL 允许对表进行重命名。有时候我们为表使用了无意义的名称,因此需要更正。 语法 SQL 支持两种重命名表的方式: ALTER TABLE old_table_name  RENAME TO new_table_name;  RENAME old_table _name TO new_table_name; old_table_name 为旧的表名,new_table_name 为新的表名。 示

  • 主要内容:Oracle RENAME表的例子在本教程中,您将学习如何使用Oracle 语句重命名数据库中的表。 要重命名表,可以使用以下Oracle 表语句,如下所示: 在表语句中: 首先,指定将要重命名的表名称。 其次,指定新的表名。新名称不能与同一模式中的另一个表相同。 请注意,一旦执行了语句,就不能回滚了。 当重命名表时,Oracle自动将旧表上的索引,约束和授权转移到新表上。 另外,它使依赖重命名表(原表)的所有对象失效,如视图,存