Il problema persiste...
Riporto in calce il frammento di codice SQL che genera la tabella coinvolta nel trigger e il trigger stesso:
Codice:
CREATE TABLE LUOGO_DI_INTERESSE(
idLuogo int not null auto_increment,
nome varchar(100) not null,
descrizione text not null,
selettoreTipoLuogo varchar(50) not null default '',
likes int default 0,
latitudine float(10,6) null,
longitudine float(10,6) null,
fileAudio varchar(100),
QRCode varchar(255) null,
PRIMARY KEY(idLuogo),
UNIQUE KEY(nome),
CHECK( (selettoreTipoLuogo in ('INTERNO','ESTERNO','OPERA')) AND (selettoreTipoLuogo is not NULL) AND (selettoreTipoLuogo<>'') )
)ENGINE=InnoDB;
DROP TRIGGER IF EXISTS `check_ins_luogo_interesse`;
DELIMITER //
CREATE TRIGGER `check_ins_luogo_interesse` BEFORE INSERT ON `LUOGO_DI_INTERESSE`
FOR EACH ROW
BEGIN
DECLARE msg varchar(255);
IF (NEW.selettoreTipoLuogo='' OR NEW.selettoreTipoLuogo IS NULL)
THEN
SET msg = 'Vincolo Inserimento Luogo Interesse violato: selettoreTipoLuogo non puo essere vuoto!';
SIGNAL sqlstate '45000' SET message_text = msg;
END IF;
IF (NEW.selettoreTipoLuogo<>'INTERNO' AND NEW.selettoreTipoLuogo<>'ESTERNO' AND NEW.selettoreTipoLuogo<>'OPERA')
THEN
SET msg = 'Vincolo Inserimento Luogo Interesse violato: valore selettoreTipoLuogo non ammesso!';
SIGNAL sqlstate '45000' SET message_text = msg;
END IF;
IF (NEW.selettoreTipoLuogo='ESTERNO' AND (NEW.latitudine='' OR NEW.latitudine IS NULL OR NEW.longitudine='' OR NEW.longitudine IS NULL))
THEN
SET msg = 'Vincolo Inserimento Luogo Interesse violato: coordinate non complete per luogo esterno!';
SIGNAL sqlstate '45000' SET message_text = msg;
END IF;
IF (NEW.selettoreTipoLuogo='OPERA' AND (NEW.QRCode='' OR NEW.QRCode IS NULL))
THEN
SET msg = 'Vincolo Inserimento Luogo Interesse violato: QRCode mancante per opera!';
SIGNAL sqlstate '45000' SET message_text = msg;
END IF;
END
//
DELIMITER ;
Il medesimo codice eseguito in ambiente locale Apache, PHP, MySQL non genera alcun errore...
Cordiali Saluti