Visualizzazione risultati 1 fino 5 di 5

Discussione: Errore creazione triggers MySQL! (permessi non suff., trigger abilitati nel pannello)

  1. #1
    Guest

    Exclamation Errore creazione triggers MySQL! (permessi non suff., trigger abilitati nel pannello)

    Buongiorno,

    chiedo aiuto al team di Altervista in quanto, nonostante abbia attivato sia l'Engine InnoDB che l'opzione abilita triggers dal pannello di configurazione altervista, riscontro sempre un errore qualora voglia creare un trigger in MySQL.

    La sintassi con cui creo il trigger è corretta in quanto è la medesima che utilizzo per il database su macchina locale.

    Il problema sta nel fatto che, nonostante io abbia abilitato i triggers, il mio user mysql (in phpmyadmin) non ha i permessi per crearli, il che è un controsenso.
    Infatti andando nel mio db (da phpmyadmin), pannello routine, mi viene mostrato il fatto che non ho i permessi necessari...

    Cosa mi sfugge?

    Grazie in anticipo per l'aiuto,
    cordiali saluti

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Il problema persiste? Puoi riportare la query che ti restituisce errore?

  3. #3
    Guest

    Predefinito

    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
    Ultima modifica di concesiopaolovi : 23-05-2016 alle ore 19.17.13

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Sul tuo account hai a disposizione MySQL 5.1, per poter usare l'istruzione SIGNAL è necessario MySQL 5.5 o successivo.
    Se apri un nuovo account avrai a disposizione MySQL 5.6.29.

  5. #5
    Guest

    Predefinito

    grazie mille!

    Mi era sfuggito questo dettaglio...

    Provvederò ad aprire un nuovo account!

    Grazie mille dell'aiuto!
    Saluti
    Ultima modifica di concesiopaolovi : 23-05-2016 alle ore 22.44.51

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •