problema Trigger

DylanDog

Nuovo Utente
2 Lug 2010
2
0
0
Salve a tutti avrei un piccolo problema non riesco a realizzare un trigger..
il problema è questo io ho una tabella evento un campo dell'evento è Tipo che può essere ammonizione, espulsione, gol, occasione, oravorrei realizzare sto trigger che dopo la lettura del record in base all'id del calciatore va nella tabella calciatore e aggiorna il valore dei gol o delle ammonizioni ecc...
io Avevo pensato a questo:

Create new trigger ControlloEvent
after insert on tipo
For each row
begin
if tipo='gol'
select tessera
from giocatore
set gol_T=gol_T+1 where giocatore=tessera
end;

solo che non vuole saperne di funzionare qualcuno puo darmi una mano...grazie in anticipo
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
39
Sanremo
Allora dopo "AFTER INSERT ON" ci va il nome della tabella non del campo, quindi nel tuo caso evento. Poi per ottenere i valori dei campi relativi alla riga inserita si usa NEW.<nomecampo>.

Prova così:

Codice:
DELIMITER $$

CREATE TRIGGER CotrolloEvent2 AFTER INSERT ON evento
FOR EACH ROW
BEGIN
IF STRCMP(NEW.tipo,"gol") = 0 THEN
UPDATE calciatore SET goals = goals + 1 WHERE tessera= NEW.giocatore;
ELSEIF STRCMP(NEW.tipo,"ammonizione") = 0 THEN
UPDATE calciatore SET ammonizioni = ammonizioni + 1 WHERE tessera = NEW.giocatore;
ELSEIF STRCMP(NEW.tipo,"espulsione") = 0 THEN
UPDATE calciatore SET espulsioni = espulsioni + 1 WHERE tessera = NEW.giocatore;
ELSEIF STRCMP(NEW.tipo,"occasione") = 0 THEN
UPDATE calciatore SET occasioni = occasioni + 1 WHERE tessera = NEW.giocatore;
END IF;
END$$

DELIMITER ;