|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : avril 2007 Messages : 42 ![]() |
Bonjour,
J'essaye de créer une table de log dans ma base de données et j'aimerais pouvoir y stocker l'intitulé des requêtes qui modifie la base. Pour exemple , voici ce que j'aimerais avoir dans ma table Code :
Quelqu'un aurait-il une idée ? Merci |
||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : avril 2006 Messages : 833 ![]() |
Si ça peut t'aider moi je traite ça directement dans le code
Aprés chaque INSERT, j'appelle une proc stockée que j'ai faite qui insere les données dans ma table de log. En gros apres chaque insert il te suffit d'appeller ta proc stockée en y mettant les bonnes valeurs pour les differents champs. tu vois ce que je veux dire ? |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : avril 2007 Messages : 42 ![]() |
Je ne vois pas vraiment ce que tu veux dire en fait.
Je n'ai jamais utilisé de procédure stockée et plus la requête que je dois stocker ne sera pas forcément un insert, ça peut être aussi bien delete ou update et ceux-ci sur plusieurs tables. Sinon, tu aurais un exemple à me donner ? Voir un petit peu à quoi ça ressemble au niveau du code. Merci |
|
|
00
|
|
|
#4 | ||
|
Membre chevronné
![]() Inscription : avril 2006 Messages : 833 ![]() |
si j'adapte ca a toi ca donnerai
Code :
et apres chaque requete que tu fais tu mets par exemple CALL PRC_LOG(now(), ta table, ta requete, ton commentaire); tu vois un peu mieux ce que je veux dire ? |
||
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : avril 2007 Messages : 42 ![]() |
L'inconvénient c'est que ta méthode n'est pas automatique. Il faut appeler ta procédure après chaque requête, c'est pas très pratique.
Et étant donné que les gens qui vont utiliser la base ne s'y connaisse pas du tout en sgbd, ils vont pas penser à lancer la procédure. L'idéal serait encore une fois que cela se fasse automatiquement à chaque requête qui modifie les tables. Par un trigger ce serait nickel mais je ne connais pas la méthode pour faire ce que je veux. J'arrive juste à récupérer le numéro de l'enregistrement que j'ajoute , modifie et supprime. Quelqu'un aurait-il une autre idée ? |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : février 2006 Messages : 953 ![]() |
Avec des triggers ça ne marchera que pour les UPDATE et INSERT, il en faudra 2 par table qui recontitueront les requêtes et ça va être moche.
Pour moi le plus simple... c'est d'activer le log général de MySQL, il donne toutes les requêtes Sinon pour avoir ça en base il faudrait faire une procédure/classe qui englobe les appels à la BDD et y ajoute la sauvegarde de la requête. Et forcer les développeurs à l'utiliser. Un simple grep sur le code devrait permettre de trouver les vilains qui accèdent directement à la BDD |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com