当IDENTITY_INSERT设置为OFF时,Liquibase无法为表“表”中的标识列插入显式值

时间:2019-09-26 07:41:20

标签: spring-boot liquibase

我创建了liquibase。然后,我生成了数据库mssql的changelog。

它在表上也有数据。

因此,changesets被创建用于列的生成和插入。如:

    <changeSet author="caydin (generated)" id="1564422742214-1">
    <insert tableName="role">
        <column name="id" valueNumeric="2"/>
        <column name="created_date" valueDate="2019-09-25T14:34:13.87"/>
        <column name="updated_date"/>
        <column name="name" value="dsadsada"/>
    </insert>
</changeSet>

角色。 Java 是:

@Table(name = "`role`")
public class Role  {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

因此,我们有GenerationType.IDENTITY

通常,我们不需要为liquibase更改集定义id,但是有一些特定情况。

但是,我可以手动处理它们。

因此,对于该错误,最佳方法是将其手动添加到所有变更集:

SET IDENTITY_INSERT tableName ON

或删除

 <column name="id" valueNumeric="2"/>

让liquibase自动创建吗?

0 个答案:

没有答案