Visualizzazione risultati 1 fino 8 di 8

Discussione: problema con la sintassi dei TRIGGER

  1. #1
    Guest

    Predefinito problema con la sintassi dei TRIGGER

    Ho un problema con la sintassi dei trigger. Ho scritto questo trigger

    Codice:
    CREATE TRIGGER canc_visitatori_registrati AFTER DELETE
    ON VISITATORI_REGISTRATI FOR EACH ROW
    DELETE FROM NUOVI_UTENTI
    WHERE Nickname=OLD.Nickname;
    e ottengo dei messaggi d'errore sulla sintassi, che però non trovo. per scrupolo ho provato a copiare dei trigger esemplificativi da internet e eseguendoli su phpmyadmin ottenevo sempre errori sintattici. allora mi chiedevo se effettivamente ho sbagliato io a scrivere il trigger o c'è qualcosa che mi sfugge su PMA di altervista?

  2. #2
    L'avatar di radioradianti
    radioradianti non è connesso Utente storico
    Data registrazione
    26-11-2003
    Residenza
    Roma
    Messaggi
    1,000

    Predefinito

    Sintatticamente non sembra molto errato.
    Potresti fornire anche la struttura delle 2 tabelle utilizzate nel trigger?
    Così potrei riprodurre il tutto in locale e vedere dove si trova il problema.

    in ogni caso ho ipotizzato una semplice struttura sulla base del tuo trigger.

    se lo scrivi così, non da errori di sintassi (almeno in locale) :
    Codice:
    DELIMITER $$
    
    CREATE
        TRIGGER `test`.`canc_visitatori_registrati` AFTER DELETE
        ON `test`.`VISITATORI_REGISTRATI`
        FOR EACH ROW BEGIN
    	DELETE FROM NUOVI_UTENTI
    	WHERE Nickname=OLD.Nickname;
        END$$
    
    DELIMITER ;
    Ciao

    Leandro

    P.S.
    Ovviamente 'test' è il mio database di prova ;)
    Ultima modifica di radioradianti : 22-06-2008 alle ore 15.30.32

    E' on line il numero 12 di Topolinux - Totalmente rinnovato!
    TopoLinux è anche chat! irc.azzurra.org canale #topolinux
    La semplicità di questo dono è inversamente proporzionale alla qualità della nostra amicizia

  3. #3
    Guest

    Predefinito

    lo schema che interessa questo trigger è:

    VISITATORI_REGISTRATI(Nickname, email);
    NUOVI UTENTI(Nickname,email,codice_convalida) //codice convalida serve per attivare l'account tramite link

    edit: lo scopo di questo trigger è eliminare un utente dalla tabella d'appoggio (che contiene dli user in "fase di registrazione" ) quando passa con una insert alla tabella degli "effettivamente registrati" (dopo aver attivato l'account per mezzo di un link). Potrei semplicemente fare una insert e una delete, ma dal momento che mi serve per una tesina universitaria ho stramaledettamente bisogno di usare il trigger

    comunque ho provato ad usare il codice che m hai scritto tu, eliminando 'test' e ottengo ancora :

    Errore

    query SQL:

    DELIMITER $$ CREATE TRIGGER `canc_visitatori_registrati` AFTER DELETE ON `VISITATORI_REGISTRATI` FOR EACH ROW BEGIN DELETE FROM NUOVI_UTENTI WHERE Nickname = OLD.Nickname;

    Messaggio di MySQL: Documentazione
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER $$

    CREATE TRIGGER `canc_visitatori_registrati` AFTE
    *termina proprio con "AFTE" il messaggio d errore. non l ho tagliato.. please help meeee :(
    Ultima modifica di eddubeddu : 22-06-2008 alle ore 17.32.40

  4. #4
    L'avatar di radioradianti
    radioradianti non è connesso Utente storico
    Data registrazione
    26-11-2003
    Residenza
    Roma
    Messaggi
    1,000

    Predefinito

    mmmm
    sinceramente mi sorge il dubbio che la versioni Mysql che stai utilizzando non supporti correttamente i trigger.

    Che versioni usi?

    Ciao

    Leandro

    E' on line il numero 12 di Topolinux - Totalmente rinnovato!
    TopoLinux è anche chat! irc.azzurra.org canale #topolinux
    La semplicità di questo dono è inversamente proporzionale alla qualità della nostra amicizia

  5. #5
    Guest

    Predefinito

    e mi sà che è proprio così.. comunque sto usando phpmyadmin di altervista. Ma non riesco a capire che versione è Mysql

  6. #6
    L'avatar di radioradianti
    radioradianti non è connesso Utente storico
    Data registrazione
    26-11-2003
    Residenza
    Roma
    Messaggi
    1,000

    Predefinito

    la versione la vedi nella index del phpmyadmin

    dovrebbe esserci scritto qualcosa del tipo :

    Codice:
    Server version: 5.0.45-community-log
    Ciao

    Leandro

    E' on line il numero 12 di Topolinux - Totalmente rinnovato!
    TopoLinux è anche chat! irc.azzurra.org canale #topolinux
    La semplicità di questo dono è inversamente proporzionale alla qualità della nostra amicizia

  7. #7
    Guest

    Unhappy c'è qualcuno che ha implementato TRIGGERS su ALTERVISTA?!?

    SE e dico SE esiste qualcuno che abbia implementato un DANNATO TRIGGER su altervista, mi può postare qui QUALCUNO dei suoi trigger??
    (ovviamente cambiando nome agli attributi e le tabelle per non rendere visibili al mondo intero i vostri schemi)

    ci sto sbattendo la testa, ma non riesco a capire se sbaglio io a scrivere i trigger perchè non ho capito bene le regole di sintassi, oppure su altervista non si possono fare.

    AIUTATEMI
    Ultima modifica di dreadnaut : 25-06-2008 alle ore 00.34.26 Motivo: - rosso :-p

  8. #8
    Guest

    Predefinito

    Sbaglio o i trigger sono supportati solo da mysql 5?
    Qui su AV c'è la 4


    Ciao!

Regole di scrittura

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