【发布时间】: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)中不起作用。
有什么办法可以解决这个问题吗?
【问题讨论】:
-
这和oracle有什么关系?
-
只是H2的模式是Oracle:jdbc:h2:mem:database1;DB_CLOSE_DELAY=-1;MODE=Oracle;
-
你可以试试
IDENTITY。 stackoverflow.com/questions/68115697/… -
你可以试试
IDENTITY。 stackoverflow.com/questions/68115697/… -
@shanfeng 谢谢。