• [^] # Re: pour renvoyer une erreur

    Posté par . En réponse au message Soucis de SQL..... Évalué à 1.

    Ok !
    Merci, ta réponse m'inspire... En fait, c'est plus simple que je ne pensais !
    Alors, la fonction simplifiée donnerait quelquechose de ce genre (pas encore eu le temps de tester, c'est juste l'inspiration du moment...) :

    CREATE FUNCTION areExclusivePeriods( DATE, DATE, DATE, DATE)
    RETURNS boolean AS'
    DECLARE
    debut1 ALIAS FOR 1ドル;
    fin1 ALIAS FOR 2ドル;
    debut2 ALIAS FOR 3ドル;
    fin2 ALIAS FOR 4ドル;
    retval boolean;
    BEGIN
    IF (((debut2 >= fin1) AND (fin2 > debut2)) or ((debut1 >= fin2) and (debut1 > fin1))
    then
    retval := true;
    else
    retval := false;
    end if;
    return retval;
    end;
    ' LANGUAGE 'plpgsql';

    En fait, de part les contraintes (check...), il est même probable que la deuxième partie du test (finN > debutN) ne soit pas indispensable, par contre il rend le code plus lisible, je le garde donc (en plus, sans, la fonction n'a plus aucun sens et ne fonctionne pas comme il faut.... ). J'ai fait des tests, même en renseignant des trucs bizare, ça à l'air de fonctionner.... Ca me plait bien.
    Pour le trigger, rien à redire, ça me plait bien aussi....
    Je m'en vais intégrer tout ça !
    Merci pour l'inspiration.... J'étais vraiment dans le gaz ce matin !