我有一个要求,我的mysql表的主键以' 0'开头。我应该如何在liquibase xml中指定它?
我在创建表时尝试了startWith参数,但它没有成功。
<column autoIncrement="true" name="id" type="BIGINT(20) UNSIGNED" startWith="0">
<constraints primaryKey="true"/>
</column>
感谢任何帮助。
答案 0 :(得分:0)
liquibase生成的SQL似乎正确包含基于startWith的AUTO_INCREMENT = 0表选项。如果运行liquibase updateSql
直接运行SQL,MySQL本身似乎不接受默认值零。如果我使用相同的createTable但使用不同的startWith(如100)它可以正常工作,但将其设置为零会使它实际上从一个开始。
也许设置SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
标志会使它正常工作,但由于mysql使用零作为值意味着“使用下一个自动增量字段”,如果可以避免混淆,最好从1开始