【问题标题】:H2 (version 2.0.202 ) auto_increment not workingH2(版本 2.0.202)auto_increment 不起作用
【发布时间】:2022-01-23 23:16:27
【问题描述】:

我从 1.4.200 -> 2.0.202 更新了 com.h2database 的版本。 liquibase 的版本是 4.3.5。

JDBC 连接字符串如下所示:

jdbc:h2:mem:database1;DB_CLOSE_DELAY=-1;MODE=Oracle;

而且,我有一个这样的 liquibase changeSet:

> databaseChangeLog:
>  - changeSet:
>      id:01
>      author:XYZ
>      changes:
>       - createTable:
>           columns:
>            - column:
>                autoIncrement:true
>                constraints:
>                  nullable: false
>                  primaryKey: true
>                  primaryKeyName: PK_table_employee
>                name: id
>                type: int
>            - column:
>                name: name
>                type: nvarchar(255)
>           tableName: table_employee

执行时给定的changeSet在H2(版本1.4.200)中创建“table-employee”,但相同的changeSet给出错误提示:

Error creating bean with name 'liquibase; defined in class path .....
Reason: liquibase.exception.DatabaseException: Syntax error in SQL statement "CREATE TABLE DBO.TBL_EMPLOYEE (ID INT AUTO_INCREMENT[*], NAME NVARCHAR(255))"

.....

我看到“AUTO_INCREMENT”在 H2(版本 2.0.202)中不起作用。

有什么办法可以解决这个问题吗?

【问题讨论】:

标签: h2 liquibase


【解决方案1】:

在默认的常规模式下,H2 2.0 像正常的标准兼容数据库一样工作,并拒绝,例如,尝试将 NULL 值插入具有 NOT NULL 约束的列中,但 Hibernate 会尝试这样做,请参阅问题 HHH-14985

【讨论】:

  • 对不起,我可能不清楚,实际上我在执行上述 chagneset 时遇到了问题,它试图为 ID 列创建一个带有“autoIncrement:true”的表。
猜你喜欢
  • 1970-01-01
  • 2022-01-11
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 2011-11-15
  • 2011-01-03
  • 1970-01-01
  • 2017-09-11
相关资源
最近更新 更多