Criar um trigger para obedecer parâmetros
Como criar um trigger ,que sempre que for introduzido um novo registo onde o par de valores correspondentes aos campos "numaluno" e "coddisc" já exista na tabela , isto é se um exame for repetido para aquele aluno e disciplina, o registo entre os repetidos com a nota mais baixa deverá ser eliminado na tabela de "Exames" e acrescentado à tabela de "Examesbaixos"?
Como não existe nenhuma tabela "Examesbaixos" essa mesmo deve ser criada.
tabela de Alunos :
| numaluno | nome | turma|
|:-------- |:------:| -------:|
| 1 | Alberto| B |
| 2 | Fran | B |
|3 |Antonio | A |
| 4 | Rita | C |
tabela de Disciplinas :
| coddisc | nome | precedencia|
|:-------- |:------:| -------:|
| mat1 | matematica1 | NULL |
| mat2 | matematica2 | mat1 |
|prog1 | programacao1 | NULL |
| prog2 | programacao2 | prog1|
tabela de Exames :
| id | numaluno | coddisc | nota |
|:--------|:------: | -------:|-------:|
| 1 | 1 | mat1 | 16
| 2 | 1 | mat2 | 3
| 3 | 1 | prog1 | 11
| 4 | 1 | prog2 | 2
| 5 | 1 | prog2 | 19
| 6 | 2 | prog1 | 13
| 7 | 2 | mat1 | 8
| 8 | 2 | mat2 | 6
Estou bloqueado , não vejo forma de fazer o trigger.
CREATE TRIGGER verificacaonotas after update
ON exames
for each row
AS
begin
-------------------------------------------
Começo por verificar as notas( mas como relaciono com os alunos?!?!?!) e se for superior adicionar na tabela exame se for inferior adicionar na tabela Examesbaixos
------------------------------------------
IF NEW.nota > OLD.nota THEN
INSERT INTO exames VALUES (NEW.id,NEW.nota);
ELSE
INSERT INTO Examesbaixo values (New.id,New.nota)
END IF;
Não estou a conseguir resolver,se for possível gostava de uma ajuda
Subject
Views
Written By
Posted
Criar um trigger para obedecer parâmetros
731
September 28, 2021 01:55PM
Sorry, you can't reply to this topic. It has been closed.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion
of Oracle or any other party.