trigger

tokyo74

Nuovo Utente
11 Set 2011
3
0
1
salve a tutti,
sto cercando di capire come funzionano i trigger e stavo cercando di svolgere degli esercizi, questo dato che è senza soluzione vorrei capire se è corretto, se può andare o và fatto in un altro modo, potreste darmi una mano?

Aliscafo(id,nome,numeroPasseggeri)
Corsaaliscafo(id,data,idaliscafo,numeroPasseggeri)

Creare un trigger che ogni qualvolta il numero di passeggeri per una corsa raggiunge il massimo, l’aliscafo assegnato è scambiato con un altro più grande se non usato in un'altra corsa.

delimiter //
create trigger scambio_aliscafo
after insert on corsaaliscafo
for each row
begin
if new.id(select c.id
fron corsaaliscafo c
where c.numeroPasseggeri=(select max(a.numeroPasseggeri)
from aliscafo a
where c.id_aliscafo=a.id))
then update aliscafo set id=new.id, nome=new.nome, numeroPasseggeri=new.numeroPasseggeri;
where c.numeroPasseggeri<a.numeroPasseggeri and
c.id_aliscafo<>a.id;
end if;
end;//
 

Discussioni simili