无法使用 Liquibase 中的序列在表中插入值

Posted

技术标签:

【中文标题】无法使用 Liquibase 中的序列在表中插入值【英文标题】:Unable to insert values in a table using sequence in Liquibase 【发布时间】:2015-11-30 23:50:12 【问题描述】:

我想使用 sequence_name.NEXTVAL 在 liquibase 中自动计算列的值。后端数据库是 postgresql。我尝试使用this link 中所示的“valueComputed”属性。但它不是使用序列计算值,并且列的值在插入时为空。我们如何使用序列自动增加 liquibase 中的列?提前谢谢你的帮助。

我的代码如下:

    <changeSet id="20151020000" author="jhipster">      

    <createSequence cycle="false" incrementBy="1" maxValue="1000"  minValue="50" sequenceName="seq_name" startValue="50"/>

    <createTable tableName="tablename">
                <column name="id" type="bigint" valueComputed ="seq_name.NEXTVAL">
                    <constraints primaryKey="true" nullable="false"/>
                </column>
   </createTable>

【问题讨论】:

【参考方案1】:

这对我有用:

<createTable tableName="tablename">
    <column name="id" type="bigint" defaultValueSequenceNext="seq_name">
        <constraints primaryKey="true" nullable="false"/>
    </column>
</createTable>

【讨论】:

以上是关于无法使用 Liquibase 中的序列在表中插入值的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 12c - 使用另一个表中的值在表中插入值

如何使用 PL/SQL 中的过程在表中插入多个值?

根据 Redshift 中其他表的条目在表中插入值

使用 C# 出现错误“无法在表中插入标识列的显式值”

搜索字符串并在表中插入值

Oracle:将序列设置为特定值[重复]