2010-03-16 13 views

Répondre

7

Pas sûr que cela fonctionne, mais ça vaut le coup d'essayer.

Ajoutez simplement "/* some comment or tag */ " avant toute requête SQL envoyée normalement.

Il est possible que le serveur mySQL supprime ce commentaire dans le cadre de son analyse/préparation de requête, mais il se peut qu'il le quitte aussi, il apparaît donc comme tel dans les journaux et autres outils de surveillance.

Dans le cas où les commentaires obtenir débarrassais, et en supposant des requêtes SELECT, une légère variation sur le serait ci-dessus pour ajouter une colonne calculée comme la première chose après SELECT, quelque chose comme

SELECT IF('some comment/tag' = '', 1, 0) AS BogusMarker, here-start-the-original-select-list 
-- or 
SELECT 'some [short] comment/tag' AS QueryID, here-start-the-original-select-list 

Cette approche a inconvénient d'introduire une valeur de colonne supplémentaire, avec chacune des lignes de résultats. La dernière forme utilise réellement la valeur "comment/tag" comme valeur, ce qui peut être utile pour le débogage.

+0

Vous pourriez faire quelque chose comme 'SELECT IF ('owner' = 'joe ',' commentaire ', original_first_column) – Tgr

+1

FWIW Le serveur MySQL ne supprime pas les commentaires, mais le client de ligne de commande 'mysql' le fait: –

0

découvert aujourd'hui:

MySQL supporte la syntaxe étrange:

/*!<min-version> code here */

d'inclure du code qui ne sera interprété par MySQL, et que MySQL d'une version minimale spécifiée.
cela est documenté ici: http://dev.mysql.com/doc/refman/5.0/en/comments.html
(. Utilisé par mysqldump par exemple)

ces commentaires ne seront pas analysés sur, et inclus dans le processlist, contrairement à ceux normaux, et que même si le code est effectivement exécuté .

de sorte que vous pouvez faire quelque chose comme

/*!999999 comment goes here */ select foo from bla;

avoir un commentaire qui apparaîtra dans le processlist, mais pas modifier le code. (jusqu'à ce que mysql devs décide de gonfler leur numéro de version et de publier une version numérotée au-dessus de 99.99.99, auquel cas il vous suffira d'ajouter un autre chiffre

+0

été posté il y a quatre ans: http: // stackoverflow. com/a/4100729/4271231 – r00t