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的主要内容,如果未能解决你的问题,请参考以下文章