Возможен ли триггер для оператора select с MySQL? - PullRequest
0 голосов
/ 07 мая 2010

Я знаю, что триггеры можно использовать при вставке, обновлении и удалении, но как насчет триггера (или что-то вроде) в операторе выбора. Я хочу использовать триггер для вставки данных в таблицу B, когда выбрана существующая запись в таблице A, это может быть возможно?.

Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 07 мая 2010

Вы должны спроектировать свое приложение так, чтобы доступ к базе данных осуществлялся только определенными методами, и в этих методах добавьте необходимый мониторинг.

1 голос
/ 07 мая 2010

Не совсем триггер, но вы можете:

CREATE FUNCTION myFunc(...) BEGIN INSERT INTO myTable VALUES(...) END;

А потом

SELECT myFunc(...), ... FROM otherTable WHERE id = 1;

Хотя это не элегантное решение.

1 голос
/ 07 мая 2010

Это невозможно в самой базе данных.

Однако существуют продукты для мониторинга / инструментария для баз данных (например, для Sybase - не уверен насчет MySQL), которые отслеживают каждый запрос, выполняемый сервером, и могут делать что угоднона основании этого - обычно сохраняют журнал запросов в хранилище данных для последующего анализа, но я думаю, они также могут вставить запись в таблицу B для вас.

0 голосов
/ 07 мая 2010

Вы можете написать приложение, которое будет отслеживать журнал запросов и что-то делать, когда происходит выбор.Хотя довольно грубый способ решить проблему ...

...