Belli bir tablodan maksimum sütun değeri elde etmenin mümkün olup olmadığını ve hiç bir düz sql olmadan başlatma sırası değeri olarak ayarlanıp ayarlanamayacağını merak ediyorum. Aşağıdaki kod çalışmaz: Maksimum sütun değerini, başlangıç tablo değeri olarak likit başlangıç etiketleriyle ayarlayın
<property name="maxId" value="(select max(id)+1 from some_table)" dbms="h2,mysql,postgres"/>
<changeSet author="author (generated)" id="1447943899053-1">
<createSequence sequenceName="id_seq" startValue="${maxId}" incrementBy="1"/>
</changeSet>
bir hata var: Ben aynı sonucu
select ...
vb etrafında hiçbir parantez ile denedim
Caused by: liquibase.parser.core.ParsedNodeException: java.lang.NumberFormatException: For input string: "${m"
. Yani, hesaplanan değeri başlangıç dizisi değeri olarak kullanmak mümkün değil mi?
, (some_table öğesinden maks (id) +1'i seçin))). –
Yapılandırma dosyanızın kalanını yükleyebilir misiniz? Hangi ortamda likitibaz kullanıyorsunuz? –
Norbert, Java8, Spring-boot 1.2.6, Liquibase 3.4.1, yürütme için Postgres (9.3-1102-jdbc41) ve testler için H2. – dfche