如何将如下所示的 sql 序列放入 liquibase 变更日志文件 (xml) 中?
还可能吗?
CREATE SEQUENCE sequence_option_1
START WITH COALESCE((SELECT MAX(id) FROM entity WHERE source = 'source1'), 1);
我无法选择创建具有最大 id 的表。
我想我必须用 T-SQL 来写这个,所以有人知道 Transact-SQL 并且可以以某种方式转换这个序列并获得类似的结果吗?
Liquibase 中有一个 createSequence 更改。但看起来
startValue
只接受整数值,并且没有像其他更改那样具有 startValueComputed
之类的属性。
因此,在您的情况下,您可以使用简单的
<sql>
更改,例如:
<changeSet id="foo" author="bar">
<preConditions onFail="MARK_RAN">
<not>
<sequenceExists sequenceName="sequence_option_1"/>
</not>
</preConditions>
<sql>
CREATE SEQUENCE sequence_option_1
START WITH COALESCE((SELECT MAX(id) FROM entity WHERE source = 'source1'), 1);
</sql>
</changeSet>