2010-03-16 7 views

Antwort

7

Nicht sicher, das würde funktionieren, aber einen Versuch wert.

Fügen Sie einfach "/* some comment or tag */ " hinzu, bevor die SQL-Abfrage normal gesendet wird.

Es ist möglich, dass der mySQL-Server diesen Kommentar als Teil seiner Abfrageanalyse/-vorbereitung entfernt, aber er kann ihn auch einfach verlassen, sodass er in Protokollen und anderen Überwachungstools angezeigt wird.

Fall in den Kommentaren hinreißen lassen gestrippt und SELECT-Abfragen unter der Annahme, eine leichte Abwandlung der oben würde eine berechnete Spalte als das erste, was nach SELECT, so etwas wie

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 

Dieser Ansatz der hat hinzuzufügen sein Nachteil der Einführung eines zusätzlichen Spaltenwerts mit jeder der Ergebniszeilen. Die letztere Form verwendet tatsächlich den Wert "comment/tag" als diesen Wert, der für Debugging-Zwecke hilfreich sein kann.

+0

Sie könnten etwas wie 'SELECT IF ('owner' = 'joe ',' zusätzlicher Kommentar ', original_first_column) ', um die zusätzliche Spalte zu vermeiden – Tgr

+1

FWIW MySQL-Server entfernt keine Kommentare, aber der' mysql'-Kommandozeilen-Client tut das. –

0

dies heute entdeckt:

mysql unterstützt die seltsame Syntax:

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

Code einzubetten, die nur durch mysql interpretiert werden, und nur mysql einer bestimmten Mindestversion.
dies ist hier dokumentiert: http://dev.mysql.com/doc/refman/5.0/en/comments.html
(. Von mysqldump zum Beispiel verwendet)

solche Kommentare in der PROCESS nicht analysiert geführt und aufgenommen werden, im Gegensatz zu normalen, und dass, selbst wenn der Code nicht ausgeführt tatsächlich .

so können Sie so etwas wie tun

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

einen Kommentar zu haben, die in der PROCESS auftauchen, aber nicht den Code ändern. (bis mysql devs beschließen, ihre Versionsnummer aufzublähen und eine Version mit der Nummer 99.99.99 zu veröffentlichen, dann müssen Sie einfach eine weitere Ziffer hinzufügen.

+0

wurde vor vier Jahren gepostet: http: // stackoverflow. com/a/4100729/4271231 – r00t