- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- MYSQL 5 - Triggers
-
MYSQL 5 - Triggers
Salve a tutti voi,
da qualche giorno sto provando queste nuove funzionalità di MYSQL, e sono arrivato ad provare, o meglio cercare di concatenare (sempre se possibile) delle stored function/procedure con i trigger.A quanto pare no ogni qualvolta che scatta l'evento del trigger mi dà un errore; L'errore in questione è questo:
MySQL said: Documentation #1422 - Explicit or implicit commit is not allowed in stored function or trigger.
La domanda è:
"Esiste un modo per far chiamare una funzione o procedura via TRIGGER?!"
Son giorni che cerco, o cerco male o non esiste.Spero che qualcuno di voi mi illumini
Grazie!EDIT: Se non richiamo tramite CALL nulla il trigger non dà errori e inserisce nel database i valori che gli passo senza problemi!
-
Non sono ancora riuscito a trovare la soluzione ma almeno ho trovato risposta alla mia domanda!
26.5.8: Can a trigger call a stored procedure?
Yes.Vi terrò informati nel caso qualcun'altro in futuro si trovi nella stessa situazione.
Quasi dimenticavo, buon anno a tutti
-
Il mistero è stato svolto grazie a Bob del forum di mysql.com;
L'utilizzo del COMMIT in modo esplicito era dato dal "TRUNCATE TABLE mytable" all'interno della stored che dato che usavo il motore MyISAM cancellava la tabella e la ricreava immediatamente.
Ho rimmediato utilizzando un DELETE FROM mytable.
-
ottimo
ho sul comodino il manuale di mysql5, devo ancora decidermi ad aprirlo e cominciare a studiare perchè presto serviranno anche a me le storeprocedure e trigger solo che attualmente non sono ancora in grado di aiutarti
visto che ormai sei un mago di mysql magari tra un po' verrò a chiederti aiuto heheh
-
Queste novità di MYSQL5 sono molto utili;
Inoltre creando delle procedure (blocchi di istruzioni mysql) è molto comodo per un fatto di leggibilità ma sopratutto di velocità;Questa stored ci mette meno di un secondo a fare:
- Un select che estrae tutte le keywords che ho in un campo
- Splittarle
- Inserirle in un altra tabella
E inoltre il trigger che è un evento di mysql che può scattare prima o dopo una determinata azione (insert,update,delete etc) fà si che richiami la procedura automaticamente aggiornando tutta la lista delle keywords.
Percui ve le consiglio.
@"Tymba" said:
visto che ormai sei un mago di mysql magari tra un po' verrò a chiederti aiuto heheh
Non esagerare ora su, c'è ancora tanto da imparare;Se posso darti una mano perchè no
-
Ciao,
questa roba mi sembra molto interessante!
Secondo voi sarebbe utile/possibile utilizzare delle stored procedures per mantenere la consistenza del database?
Ad esempio:
se voglio cancellare un record da una tabella e alcuni dei campi di questo record sono collegati ad altri campi di altre tabelle, una stored potrebbe aiutarmi in modo automatico a "sistemare" anche tutti gli altri campi delle tabelle collegate?Grazie delle risposte
Saluti a tutti
-
Piu' che altro potrebbero esserti d'aiuto i TRIGGER; Crei un trigger dopo l'evento che piu' desideri ed a questo lasci il compito di "pulire" il tuo dat;
La SP è una cosa in più;Puoi inserire un blocco di codice nel trigger stesso,non c'è bisogno per forza di associare un SP ad un trigger.