URL: https://linuxfr.org/forums/programmationautre/posts/soucis-de-sql Title: Soucis de SQL.... Authors: Gyro Gearllose Date: 2004年08月23日T12:03:36+02:00 Tags: postgresql Score: 0 Bon, voilà, j'ai une table dans laquelle j'ai deux champs de type date, non nuls, appelés respectivement dat_deb et dat_fin (date de début et date de fin... trop original !). J'ai ajouté une contrainte d'intégrité sur dat_fin pour m'assurer que dat_fin > dat_deb comme suit : create table blabla ( ... dat_deb date not null, dat_fin date not null check (dat_fin > dat_deb), ...); Je travaille avec postgreSQL 7.3.4, et j'aimerai écrire un trigger qui interdise d'ajouter une ligne dans cette table blabla pour laquelle la période désignée par dat_deb et dat_fin ne soit pas incluse dans une période déjà déclarée dans une autre ligne (est-ce clair, j'en doute...). Bon, un exemple : Si je fais : insert into blabla (dat_deb, dat_fin) values ('01/09/2004', '31/12/2004'); je veux qu'ensuite un : insert into blabla (dat_deb, dat_fin) values ('01/10/2004', '20/11/2004'); me renvoie une erreur , ou mieux encore : me découpe la première en '01/09/2004' -> '30/09/2004', puis fasse l'ajout demandé, puis m'ajoute une nouvelle ligne allant du '21/11/2004' au '31/12/2004'... Ca vous parait jouable ? Si oui, comment, de préférence en PlPgSQL ? Merci de m'avoir lu jusque là !

AltStyle によって変換されたページ (->オリジナル) /