Bonjour,
j'ai une table qui contient des lignes pour lesquelles je gère des périodes.
Exemple :
20090203 -> 20091223 : valeur = 3
20100102 -> 20110718 : valeur = 5

Je ne dois jamais avoir de chevauchement. Pour être sûr d'avoir une base cohérente, je souhaite faire un trigger sur le INSERT dans cette table.

Quand j'ajoute une période :
1. si il y a déjà des périodes incluses dans celles-ci, je les supprimer
2. si cette période est englobée par une période déjà existante, soit la valeur est la même et je fais un merge, soit la valeur est différente et je scinde l'ancienne période en deux parties
3. s'il y a une période qui se termine après le début de la période à insérer, je raccourcis sa date de fin (ou réalise un merge si même valeur)
4. s'il y a une période qui commence avant la fin de la période à insérer, je rallonge sa date de début (ou réalise un merge si même valeur)

Mon problème vient du point 2. dans le cas où on ait la même valeur. Dans l'idéal, je voudrais annuler l'insertion de la nouvelle ligne, puisque la valeur est déjà présente. Mais je ne veux pas lever d'exception car il n'y a aucune erreur. Y a-t-il un moyen de faire ça?

Sinon, si quelqu'un a une idée plus simple ou un code déjà fait pour cette histoire de période à gérer, je suis preneur aussi