我可以创建分区表,如:
CREATE TABLE person(
id INT NOT NULL,
NAME VARCHAR(30),
borned TIMESTAMP)
PARTITION BY RANGE (UNIX_TIMESTAMP(borned)) (
PARTITION p0 VALUES LESS THAN (UNIX_TIMESTAMP('2000-01-01 00:00:00')),
PARTITION p1 VALUES LESS THAN (MAXVALUE));
使用liquibase标签?我的意思是不是使用自定义<sql>
,而是使用<createTable>
答案 0 :(得分:3)
自1.9:您可以使用modifySql
附加到createTable
输出
<changeSet author="StackOverflow" id="C0FE77AA-5517-11E7-8CAD-224C16886A7C">
<createTable tableName="test">
<column name="id" type="INT">
<constraints nullable="false"/>
</column>
<column name="NAME" type="VARCHAR(30)"/>
<column name="borned" type="TIMESTAMP"/>
</createTable>
<modifySql dbms="postgresql">
<append value=" PARTITION BY RANGE (UNIX_TIMESTAMP(borned)) (
PARTITION p0 VALUES LESS THAN (UNIX_TIMESTAMP('2000-01-01 00:00:00')),
PARTITION p1 VALUES LESS THAN (MAXVALUE))"/>
</modifySql>
</changeSet>
Liquibase输出以下SQL(根据updateSql
目标):
CREATE TABLE db.test (id INT NOT NULL, NAME VARCHAR(30) NULL, borned timestamp NULL) PARTITION BY RANGE (UNIX_TIMESTAMP(borned)) ( PARTITION p0 VALUES LESS THAN (UNIX_TIMESTAMP('2000-01-01 00:00:00')), PARTITION p1 VALUES LESS THAN (MAXVALUE));
答案 1 :(得分:0)
不是没有编写自己的自定义更改标记(如Datical已完成)。