使用 oracle 更改 Liquibase 中的序列
Posted
技术标签:
【中文标题】使用 oracle 更改 Liquibase 中的序列【英文标题】:Changing the sequence in Liquibase with oracle 【发布时间】:2020-07-30 15:35:30 【问题描述】:我有一个表X
几年前在 Liquibase 中创建的,没有序列。最近,尝试通过以下步骤进行更正:
startValue=2000
创建了一个序列;
在 ID 列上使用该序列创建了一个新的临时表 (Y);
将表 X 中的所有数据移到表 Y 中;
删除表 X;
将表 Y 重命名为 X;
现在这些更改已推送到 prod。他们要求我将 sequence
从 2000 年更改为 2050 年。
我之前从未使用过 Liquibase;我的想法是删除该序列并使用startValue=2050
创建一个新序列。
但我不确定是否有更好的方法。
感谢您的帮助!
【问题讨论】:
【参考方案1】:这种方法对我有用:
<changeSet author="ml" id="20200730-sequence">
<dropSequence sequenceName="seq_id"/>
<createSequence
sequenceName="seq_id"
startValue="2050"
incrementBy="1"
ordered="true"/>
</changeSet>
【讨论】:
以上是关于使用 oracle 更改 Liquibase 中的序列的主要内容,如果未能解决你的问题,请参考以下文章
从 MySQL 中的现有表生成更改日志时,liquibase 如何处理自动递增的 PK?