problema Trigger

  • Creatore Discussione Creatore Discussione DylanDog
  • Data di inizio Data di inizio

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
 
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 ;
 

Discussioni simili