Oracle 是不是支持使用 Liquibase 的 Auto_Increment

Posted

技术标签:

【中文标题】Oracle 是不是支持使用 Liquibase 的 Auto_Increment【英文标题】:Is Auto_Increment supported in Oracle using LiquibaseOracle 是否支持使用 Liquibase 的 Auto_Increment 【发布时间】:2019-11-30 18:15:06 【问题描述】:

我想使用 liquibase 脚本在 oracle 数据库中添加一个 auto_increment 列。

我已经尝试在 liquibase 中使用 auto_increment 属性:

<column name="SUPPLEMENT_ID" type="INTEGER" autoIncrement="true" >
<constraints primaryKey="true"></constraints> 
</column>

如果 oracle 支持 auto_increment,如何使用 liquibase 脚本来实现?

【问题讨论】:

你的oracle版本是多少? autoincriment 仅适用于版本 12 你的 Liquibase 版本是什么?您是否知道 Oracle 中没有 auto_increment 选项?如果有的话,那就是supplement_id integer generated always as identity 我现在用的是oracle 12,支持吗? Oracle 12c 支持使用 Horse 描述的语法的 IDENTITY 列。根据Liquibase Jira site,,最新版本应该支持 Oracle 12c 的自动增量。 Find out more 【参考方案1】:

根据@APC 在问题下的评论,Liquibase 从版本 3.4.0 开始支持 Oracle 自动增量。见https://liquibase.jira.com/browse/CORE-1731。

【讨论】:

【参考方案2】:

在 oracle 12c 中引入了 IDENTITY 列,允许用户创建自增列

但如果您使用的是旧版本,则必须使用序列和触发器对列进行建模,因为没有 auto_increment 或 identity 之类的选项。

请参阅此答案,了解如何在这两种情况下执行此操作 https://***.com/a/11296469/8330426

【讨论】:

以上是关于Oracle 是不是支持使用 Liquibase 的 Auto_Increment的主要内容,如果未能解决你的问题,请参考以下文章

使用多个数据库和 Liquibase 时的最佳 Hibernate 主键生成类型

Liquibase DB 独立插入语句

Liquibase 了解

使用 oracle 更改 Liquibase 中的序列

使用SQL Server中的UPPER函数进行索引

使用不同 DBMS 的 Liquibase 数据库迁移