Je crée une table de liens qui a 3 colonnes; id, product_id, tournoi_id.
L'ajout d'un uniqueConstraint à la colonne "id" est trivial, mais je veux m'assurer que toute paire de (product_id, tournoi_id) est unique.
L'exemple de Liquibase.org montre
<changeSet author="liquibase-docs" id="addUniqueConstraint-example">
<addUniqueConstraint catalogName="cat"
columnNames="id, name"
constraintName="const_name"
deferrable="true"
disabled="true"
initiallyDeferred="true"
schemaName="public"
tableName="person"
tablespace="A String"/>
</changeSet>
mais est-il possible d'accomplir cela dans un <createTable>
bloquer?
Aussi, juste pour confirmer; cela crée-t-il une contrainte unique composite sur les deux colonnes, ou cela crée-t-il deux contraintes uniques distinctes?
Je suis assez certain que:
liquibase update
vous courriez liquibase updateSQL
.Vous pouvez lire la base de données manuel également un problème similaire que vous pouvez trouver ici
Dans votre cas, cela devrait être:
<changeSet author="liquibase-docs" id="addUniqueConstraint-example">
<addUniqueConstraint
columnNames="id, product_id, tournament_id"
constraintName="your_constraint_name"
tableName="person"
/>
</changeSet>