Ovviamente dobbiamo implementarlo con un trigger ma non riusciamo a superare questo errore se qualcuno riuscisse a darci una mano gliene saremmo davvero molto grati!
Le tabelle in questione sono:
UTENTE( Nick, Password, Email, DataNascitaU, Indirizzo, TipoUtente, FanSquadra, NumCom);
COMMENTO( ID, NickAutore, DataC, Testo, TitoloTopic);
Con il vincolo di FK: COMMENTO.NickAutore → UTENTE.Nick;
Il nostro trigger:
- Codice: Seleziona tutto
DELIMITER |
CREATE TRIGGER Premium
AFTER INSERT ON COMMENTO
FOR EACH ROW
BEGIN
DECLARE numcommenti INT DEFAULT 0;
DECLARE cursore CURSOR FOR SELECT NumCom FROM UTENTE WHERE UTENTE.`Nick`=NEW.NickAutore;
OPEN cursore;
FETCH cursore INTO numcommenti;
CLOSE cursore;
IF numcommenti>'19' THEN UPDATE UTENTE SET UTENTE.`TipoUtente` = 'P' WHERE UTENTE.`Nick`=NEW.NickAutore;
END IF;
END;
Infine l'errore:
[ERRORE] Query SQL non riuscita. Errore: SQLSTATE[HY000]: General error: 1442 Can't update table 'utente' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
Grazie in anticipo a chi vorrà darci una mano!