1

Temat: Trigger przed insertem

Witam, zaczynam dopiero zabawę z bazami danych i natrafiłem na pewien problem.. Otóż, mam za zadanie napisać trigger, który przed dodaniem wiersza do tabeli wizyty sprawdzi w tabeli grafik (lekarzy) czy można w ogóle dodać wizytę. Czyli żeby dodać wizytę termin wizyty i grafik danego lekarza muszą się na siebie nakładać.
Jednakże dostaję błąd: ERROR:  more than one row returned by a subquery used as an expression i nie wiem jak to zrobić żeby działało.. prosiłbym o pomoc.

create function daty_check() returns trigger as '


declare
        x bool;
        licznik int4;

begin
        licznik = 0;

    
        x = ( select (grafik.pocz, grafik.kon) overlaps (new.data_rozp , new.data_zak)
                 from grafik, wizyta WHERE grafik.id_lekarza = NEW.id_lekarza);


        if x = false then

        raise notice '' x = false ''; 
                licznik = licznik + 1;    
        end if;


        if licznik = 0 then        
        raise notice '' mozna dodawac'';
        return new;
    

        else
        raise notice '' przedzialy sie pokrywaja  '';
        end if;
end;
' language 'plpgsql';



create trigger daty_check_t before insert on wizyta for each row execute procedure daty_check();

2

Odp: Trigger przed insertem

3

Odp: Trigger przed insertem

--
The best thing about modern society is how easy it is to avoid contact with it.

4

Odp: Trigger przed insertem

OK, dzięki za odpowiedź- tylko ja mam postawione zadanie, że ma być to wykonane za pomocą triggera..