Eu sugiro especificar o disparo do gatilho para cada linha. Eu acho isso muito mais fácil.
Você pode fazer uma contagem para ver se o
MovieStar.Name
valor já existe e então insira se não existir; que é semelhante à abordagem que você tem acima. Isso falhará se outro usuário inserir a estrela de cinema entre o momento em que você verificar e o momento em que você inserir, mas provavelmente é bom o suficiente para uma tarefa de classe. Existem abordagens sem falhas aceitas para isso, mas talvez você ainda não as tenha abordado em sala de aula. Tente algo assim; provavelmente incorpora tudo o que você abordou na aula até agora:
CREATE OR REPLACE TRIGGER TestTrig
AFTER UPDATE OR INSERT ON STARSIN
FOR EACH ROW
DECLARE
movieStarCount NUMBER;
BEGIN
SELECT COUNT(*) INTO movieStarCount
FROM MovieStar
WHERE Name = :NEW.StarName;
IF movieStarCount = 0 THEN
INSERT INTO MovieStar (Name) VALUES (:NEW.StarName);
END IF;
END;