如何在liquibase中设置自动增量主键字段的起始值

时间:2014-10-07 18:38:00

标签: liquibase

我有一个要求,我的mysql表的主键以' 0'开头。我应该如何在liquibase xml中指定它?

我在创建表时尝试了startWith参数,但它没有成功。

    <column autoIncrement="true" name="id" type="BIGINT(20) UNSIGNED" startWith="0">
            <constraints primaryKey="true"/>
        </column>

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

liquibase生成的SQL似乎正确包含基于startWith的AUTO_INCREMENT = 0表选项。如果运行liquibase updateSql

,则可以看到生成的SQL

直接运行SQL,MySQL本身似乎不接受默认值零。如果我使用相同的createTable但使用不同的startWith(如100)它可以正常工作,但将其设置为零会使它实际上从一个开始。

也许设置SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";标志会使它正常工作,但由于mysql使用零作为值意味着“使用下一个自动增量字段”,如果可以避免混淆,最好从1开始