Liquibase Добавить уникальное ограничение при создании таблицы - PullRequest
0 голосов
/ 23 октября 2018

Я хочу добавить уникальное ограничение к моей таблице во время ее создания.Я думал, что-то вроде этого будет работать, но, похоже, ничего не делает.

<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 голосов
/ 23 октября 2018

Попробуйте добавить 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>
...