我正在使用Liquibase的generateChangeLog命令,如下所示:
liquibase --driver=com.mysql.jdbc.Driver \
--classpath=$HOME/.m2/repository/mysql/mysql-connector-java/5.1.26/mysql-connector-java-5.1.26.jar \
--changeLogFile=./db.changelog.xml \
--url="jdbc:mysql://localhost:3306/db" \
generateChangeLog
其中输出的XML更改日志没有所有列的列长度定义。
示例:
<changeSet author="purecharger (generated)" id="1461081110463-2">
<createTable tableName="account">
<column name="id" type="BIGINT">
<constraints nullable="false"/>
</column>
...
</createTable>
</changeSet>
列定义(摘录):
Create Table: CREATE TABLE `account` (
`id` bigint(20) NOT NULL,
...
为什么更改日志不包含长度,如此?
<column name="id" type="BIGINT(20)">
<constraints nullable="false"/>
</column>
答案 0 :(得分:1)
在MySQL中,BIGINT指定8个字节的空间,这对于从-9223372036854775808到922337203685477580的整数就足够了.BIGINT(20)并不是真正意义上的任何东西。 MySQL接受它是慷慨的。
此MySQL页面的完整详细信息:https://dev.mysql.com/doc/refman/5.5/en/integer-types.html