2012-07-17 9 views
10

W mysql mogę utworzyć wyzwalacz, a następnie wyświetlić informacje o nim tak:Czy można zmodyfikować istniejący wyzwalacz mysql po jego utworzeniu?

mysql> show triggers like 'fooTrigger'; 

Polecenie to daje moc, która wygląda strasznie dużo jak select, z rzędem wykazujące spust dopasowanie. Czy można aktualizować kolumnę w wierszu, który mi pokazuje?

Na przykład jedna kolumna ma nazwę Statement i określa, co się stanie, gdy aktywator zostanie aktywowany. Czy jest możliwe zmienić pole Statement dla fooTrigger, więc wyzwalacz robi coś innego? Czy muszę ustawić spust drop i ponownie create?

+1

możliwy duplikat adresu 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

Myślę, że jedno z tych pytań można było zamknąć, ale * spróbowałem * spróbować wyszukać tę odpowiedź, zanim zadaję pytanie, a tego nie znalazłem. Czy byłoby dobrym pomysłem zmienić lub dodać jakieś sformułowanie do drugiego pytania, aby było łatwiejsze do znalezienia? –

+0

Hmmm, http://meta.stackexchange.com/questions/32311/do-not-delete-duplicates, wygląda na to, że prawdopodobnie powinniśmy to po prostu zamknąć, a wtedy użytkownicy nadal będą mogli znaleźć odpowiedź na swoje pytanie, niezależnie od sformułowanie. –

Odpowiedz

16

Od wersji MySQL 5.5 należy upuścić i ponownie utworzyć wyzwalacz.
Nie można zaktualizować kolumny Statement bez zrzucania spustu.

Dokumentacja: CREATE TRIGGERDROP TRIGGER

Można również uzyskać informacje na temat wyzwalaczy z wykorzystaniem tabel INFORMATION_SCHEMA:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS 

Ale, jak tabele te są rzeczywiście widoki, nie można używać UPDATE na nich.
To po prostu wygodniejszy sposób dostępu do informacji i manipulowania nimi niż WYSYŁANIE WYSYŁEK.

Dokumentacja: INFORMATION_SCHEMA.TRIGGERS

0

może wymagać, w systemie operacyjnym Windows, Connector/Net Visual Studio Integration przeglądać i edytować istniejący obiekt bazy danych. Ograniczeniem jest to, że możesz tylko ciało edit trigger w obrębie pętli For each row ....

W przeciwnym razie jedyną opcją 1 jest upuszczenie i ponowne utworzenie wyzwalacza.
Ale upewnij się, że przed opuszczeniem wyzwalacza zablokowana jest tabela powiązana z wyzwalaczem i odblokowana po ponownym utworzeniu wyzwalacza.

Powiązane problemy