2012-07-17 14 views
10

In mysql posso creare un trigger, e poi mostrare informazioni su di esso in questo modo:È possibile modificare un trigger mysql esistente dopo che è stato creato?

mysql> show triggers like 'fooTrigger'; 

Questo comando dà un output che appare molto simile ad una dichiarazione prescelta, con una fila che mostra il grilletto di corrispondenza. È possibile aggiornare una colonna sulla riga che mi mostra?

Ad esempio, una colonna è denominata Statement e definisce cosa succede quando il trigger è attivato. È possibile modificare il campo Statement per fooTrigger in modo che il trigger faccia qualcosa di diverso? O ho bisogno di drop e ri-create il grilletto?

+1

possibile duplicato di http://stackoverflow.com/questions/717711/is-it-true-i-cant-edit-a-mysql-trigger-i-have-to-drop-it-and-create- a-new-one – qbantek

+0

Penso che una di queste domande potrebbe essere chiusa, ma io * ho * provato a cercare questa risposta prima di fare la domanda, e non ho trovato quella collegata sopra. Sarebbe una buona idea cambiare o aggiungere qualche formulazione all'altra domanda per renderla più visibile? –

+0

Hmmm, http://meta.stackexchange.com/questions/32311/do-not-delete-duplicates, sembra che probabilmente dovremmo semplicemente chiudere questo, e quindi gli utenti saranno ancora in grado di trovare la risposta alla loro domanda indipendentemente da formulazione. –

risposta

16

A partire da MySQL 5.5, è necessario eliminare e ricreare il trigger.
Non è possibile aggiornare la colonna Statement senza rilasciare il trigger.

Documentazione: CREATE TRIGGERDROP TRIGGER

Si può anche accedere alle informazioni sui trigger utilizzando le tabelle INFORMATION_SCHEMA:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS 

Ma, come queste tabelle sono in realtà di vista, non è possibile utilizzare UPDATE su di loro.
È solo un modo più conveniente per accedere e manipolare le informazioni rispetto all'utilizzo di SHOW TRIGGERS.

Documentazione: INFORMATION_SCHEMA.TRIGGERS

0

Si può richiedere, su sistema operativo Windows, Connector/Net Visual Studio Integration per visualizzare e modificare oggetti di database esistente. La limitazione consiste nel fatto che è possibile solo il corpo edit trigger all'interno del ciclo For each row ....

Altrimenti solo l'opzione 1 ha è in calo e ricrea il trigger.
Ma assicuratevi prima di rilasciare un trigger che la tabella associata a un trigger è bloccata e
e sbloccata dopo che il trigger è stato ricreato.

Problemi correlati