salve, ho un trigger molto banale che su un update deve andare a cancellare una riga di una tabella.
le due tabelle coinvolte sono così composte:
Codice PHP:
CREATE TABLE IF NOT EXISTS `utente` (
`UTENTE_id` bigint(10) NOT NULL AUTO_INCREMENT,
`UTENTE_nome` varchar(100) NOT NULL,
`UTENTE_cognome` varchar(100) NOT NULL,
`UTENTE_password` varchar(100) NOT NULL,
`UTENTE_active` enum('si','no') NOT NULL DEFAULT 'si',
`UTENTE_login` varchar(100) NOT NULL,
`UTENTE_operatore` enum('si','no') NOT NULL DEFAULT 'no',
`UTENTE_livello` enum('0','1','2','3','4','5','6') NOT NULL DEFAULT '0',
PRIMARY KEY (`UTENTE_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Codice PHP:
CREATE TABLE IF NOT EXISTS `elenco_accesso` (
`ELENCO_ACCESSO_id` bigint(10) NOT NULL AUTO_INCREMENT,
`UTENTE_id` bigint(10) NOT NULL,
`ELENCO_PROGRAMMA_id` bigint(10) NOT NULL,
PRIMARY KEY (`ELENCO_ACCESSO_id`),
KEY `ELENCO_PROGRAMMA_id` (`ELENCO_PROGRAMMA_id`),
KEY `UTENTE_id` (`UTENTE_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
ALTER TABLE `elenco_accesso`
ADD CONSTRAINT `elenco_accesso-utente` FOREIGN KEY (`UTENTE_id`) REFERENCES `utente` (`UTENTE_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
e questa è l'operazione che vorrei eseguire
Codice PHP:
CREATE TRIGGER `utente_update` AFTER UPDATE ON `utente`
FOR EACH ROW
BEGIN
IF NEW.utente.UTENTE_active = 'no' THEN
DELETE FROM elenco_accesso WHERE elenco_accesso.UTENTE_id = NEW.utente.UTENTE_id;
END IF;
END;
mysql va in errore e mi segnala
Codice PHP:
query SQL: Modifica
UPDATE `generico`.`utente` SET `UTENTE_active` = 'no' WHERE `utente`.`UTENTE_id` =1 LIMIT 1
Messaggio di MySQL: Documentazione
#1109 - Unknown table 'new.utente' in field list
io non vedo nulla di strano in questo codice, ma non so più dove sbattere la testa
spero che voi mi possiate aiutare, grazie1000