Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Überwachen Sie MySQL-Einfügungen aus verschiedenen Anwendungen

Ich denke, Sie könnten so etwas ziemlich einfach erreichen, vorausgesetzt, es macht Ihnen nichts aus, einige zusätzliche Tabellen und Trigger in Ihrer Datenbank zu erstellen, und dass die überwachende Java-Anwendung die Datenbank abfragen müsste, anstatt speziell Trigger zu erhalten.

Angenommen, die Tabelle, die Sie überwachen möchten, sieht in etwa so aus:

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

Dann erstellen Sie eine Tabelle, um die Änderungen zu verfolgen, und einen Trigger, der diese Tabelle füllt:

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

Dadurch wird die InsertedRecords-Tabelle mit jeder Einfügung gefüllt, die in ToMonitor erfolgt.

Dann müssen Sie nur Ihre Überwachungs-App so einrichten, dass sie regelmäßig SELECT * from InsertedRecords , ergreifen Sie die entsprechende Aktion und löschen Sie dann die Datensätze aus InsertedRecords

BEARBEITEN:Eine kleine Alternative, wenn Ihnen ein bisschen C/C++-Codierung nichts ausmacht, wäre befolgen Sie die Anweisungen hier um eine benutzerdefinierte SQL-Funktion zu erstellen, die Ihre Überwachungsanwendung ausgelöst hat, und rufen Sie diese SQL-Funktion dann einfach innerhalb des von Ihnen erstellten Triggers auf.