Hej!
Nie mogę rozgryźć dlaczego po dodaniu tego triggera, który ma tylko sprawdzić czy dany wpis do tabeli VOTES (zawierający 2 wartości) już istnieje, nie mogę dodać rekordu, który nie istnieje.
create or replace trigger czy_juz_istnieje
before insert on VOTES
for each row
declare
id_uzytkownika number(10,0) := :new.vote_userID;
id_odpowiedzi number(10,0) := :new.vote_answerID;
istnieje varchar2(1 char) := 0;
begin
-- jesli istnieje, zmienna istnieje wynosi 1:
select 1 into istnieje from VOTES where VOTE_ANSWERID = id_odpowiedzi and VOTE_USERID = id_uzytkownika;
if istnieje > 0
then
RAISE_APPLICATION_ERROR(-20666, 'JUŻ GŁOSOWAŁEŚ!');
else
if inserting
then insert into VOTES values (id_uzytkownika,id_odpowiedzi);
end if;
end if;
end;
set transaction name 'aaa';
insert into VOTES values (1,22);
commit;
Jeśli wpis istnieje, zwraca mi pożądany błąd, ale gdy nie istnieje, do bazy nie dodawany jest żaden wpis :|