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();