Mysql
 sql >> Base de données >  >> RDS >> Mysql

Surveiller les insertions MySQL à partir de différentes applications

Je pense que vous pourriez réaliser quelque chose comme ça assez facilement, en supposant que cela ne vous dérange pas de créer des tables et des déclencheurs supplémentaires sur votre base de données, et que l'application Java de surveillance devrait interroger la base de données plutôt que de recevoir spécifiquement des déclencheurs.

En supposant que la table que vous souhaitez surveiller ressemble à ceci :

CREATE TABLE ToMonitor ( id INTEGER PRIMARY KEY, value TEXT );

Ensuite, vous créez un tableau pour suivre les modifications, et un déclencheur qui remplit ce tableau :

CREATE TABLE InsertedRecords( value TEXT );
CREATE TRIGGER trig AFTER INSERT ON account
FOR EACH ROW INSERT INTO InsertedRecords( value ) VALUES ( NEW.value );

Cela entraînera le remplissage de la table InsertedRecords avec chaque insertion effectuée dans ToMonitor.

Ensuite, il vous suffit de configurer votre application de surveillance pour périodiquement SELECT * from InsertedRecords , prenez les mesures appropriées, puis effacez les enregistrements de InsertedRecords

EDIT :Une légère alternative, si cela ne vous dérange pas un peu de codage C/C++, serait de suivez les instructions ici pour créer une fonction SQL personnalisée qui a déclenché l'action de votre application de surveillance, puis appelez simplement cette fonction SQL à partir du déclencheur que vous avez créé.