2010-05-07 4 views
0

Je sais que les déclencheurs peuvent être utilisés sur insérer, mettre à jour et supprimer, mais qu'en est-il un déclencheur (ou sorte de) sur une instruction select. Je veux utiliser un déclencheur pour insérer des données sur une table B quand il est sélectionné un enregistrement existant sur une table A, cela pourrait être possible?Est-il possible de déclencher une instruction select avec MySQL?

Merci d'avance.

Répondre

1

Pas exactement un déclencheur, mais vous pouvez:

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

Et puis

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

Pas une solution élégante, cependant.

1

Ce n'est pas possible dans la base de données elle-même. Cependant, il existe des produits de surveillance/instrumentation pour les bases de données (par exemple pour Sybase - pas sûr de MySQL) qui suivent chaque requête exécutée par le serveur, et qui peuvent faire n'importe quoi - stockent généralement le journal de requête dans un entrepôt de données. analyse ultérieure, mais ils peuvent tout aussi bien insérer un enregistrement dans le tableau B pour vous, je suppose.

2

Vous devez concevoir votre application de sorte que l'accès à la base de données se produise uniquement par le biais de certaines méthodes et, dans ces méthodes, ajoutez la surveillance dont vous avez besoin.

0

Vous pouvez écrire une application qui surveillera le journal des requêtes et effectuera quelque chose lors d'une sélection. Une façon assez grossière de résoudre le problème ...

Questions connexes