sql >> Databáze >  >> RDS >> Mysql

Monitorujte vložky MySQL z různých aplikací

Myslím, že něčeho takového byste mohli dosáhnout poměrně snadno, za předpokladu, že vám nebude vadit vytvořit nějaké další tabulky a spouštěče ve vaší databázi a že monitorovací java aplikace bude muset databázi spíše dotazovat, než konkrétně přijímat spouštěče.

Předpokládejme, že tabulka, kterou chcete monitorovat, je něco takového:

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

Poté vytvoříte tabulku pro sledování změn a spouštěč, který tuto tabulku vyplní:

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

To způsobí, že tabulka InsertedRecords bude naplněna každým vložením, ke kterému dojde v ToMonitor.

Pak už jen stačí nastavit vaši monitorovací aplikaci tak, aby pravidelně SELECT * from InsertedRecords , proveďte příslušnou akci a poté vymažte záznamy z InsertedRecords

EDIT:Mírnou alternativou, pokud by vám nevadilo trochu kódování C/C++, by bylo postupujte podle pokynů zde k vytvoření vlastní funkce SQL, která spustí vaši monitorovací aplikaci do akce, a pak stačí zavolat tuto funkci SQL ze spouštěče, který jste vytvořili.



  1. Je Microsoft Access snadné se naučit?

  2. Použití vyhledávacího indexu Solr jako databáze - je to špatně?

  3. 3 způsoby, jak nahradit NULL za „N/A“ v SQLite

  4. CREATE TABLE IF NOT EXISTS ekvivalent v SQL Server