Liquibase在创建表期间添加唯一约束

时间:2018-10-23 13:19:41

标签: mysql liquibase

我想在创建表时向其表添加唯一约束。 我以为这样的事情会起作用,但似乎什么也没做。

<createTable tableName="MY_TABLE">
   <column name="MY_TABLE_ID" type="SMALLINT" autoIncrement="true">
      <constraints primaryKey="true" nullable="false"/>
   </column>
   <column name="TABLE_FIELD" type="SMALLINT">
      <constraints nullable="false" uniqueConstraintName="TABLE_FIELD_ix1"/>
   </column>
   <column name="TABLE_FIELD_TWO" type="SMALLINT">
      <constraints nullable="false" uniqueConstraintName="TABLE_FIELD_ix1"/>
   </column>
</createTable>

创建表格后,我知道可以使用addUniqueConstraint标记(并且已经成功使用了它),但是我想知道是否可以避免。

基本上我想这样做,但是在创建表部分

<addUniqueConstraint tableName="MY_TABLE"
                     columnNames="TABLE_FIELD, TABLE_FIELD_TWO"
                     constraintName="TABLE_FIELD_ix1"/>

1 个答案:

答案 0 :(得分:0)

尝试将unique="true"添加到<constraints>

    <createTable tableName="MY_TABLE">
       <column name="MY_TABLE_ID" type="SMALLINT" autoIncrement="true">
          <constraints primaryKey="true" nullable="false"/>
       </column>
       <column name="TABLE_FIELD" type="SMALLINT">
          <constraints nullable="false" unique="true" uniqueConstraintName="TABLE_FIELD_ix1"/>
       </column>
       <column name="TABLE_FIELD_TWO" type="SMALLINT">
          <constraints nullable="false" unique="true" uniqueConstraintName="TABLE_FIELD_ix2"/>
       </column>
    </createTable>