Je dois m'assurer que ma base de données ne contient que des entrées où deux ou plusieurs de ses colonnes sont uniques. Cela peut être facilement réalisé en appliquant une UNIQUE
contrainte sur ces colonnes.
Dans mon cas, je dois interdire la duplication uniquement pour les plages de temps qui se chevauchent. La table a valid_from
et valid_to
les colonnes. Dans certains cas, il peut être nécessaire de faire expirer l'entrée active en définissant valid_to = now
, puis en insérant une nouvelle entrée adaptée à valid_from = now
et valid_to = infinity
.
Il semble que je puisse faire expirer l'entrée précédente sans problème en utilisant UPDATE
, mais l'insertion de la nouvelle entrée semble être problématique puisque mes colonnes de base sont actuellement UNIQUE
, et ne peuvent donc pas être ajoutées à nouveau
J'ai pensé à ajouter valid_from
et valid_to
comme faisant partie de la UNIQUE
contrainte, mais cela ne ferait que relâcher la contrainte, et permettre
les doublons et les chevauchements de périodes à exister.