2011-12-01 22 views
5

如果我在MySQL中創建了使用CREATE TRIGGER語法的觸發器,那麼我怎樣給它添加註釋才能描述它?我的意思是在宣言中或在對我來說是一樣的。在觸發器中添加註釋(描述)

我找不出來。使用表格,您可以在聲明結尾處添加COMMENT = 'Wonderful table with users inside';。但是,如何將評論添加到觸發器?

+0

觸發器沒有這個選項。 – Devart

回答

4

您不能將註釋附加到觸發器。

但是,您可以在觸發器主體中添加註釋。

如果您在體型評論像/** comment **/
可以提取與下面的查詢這些評論:

SELECT 
    SUBSTRING(b.body, b.start, (b.eind - b.start)) as comment 
FROM (
    SELECT 
    a.body 
    ,locate('/**',a.body) as start 
    ,locate('**/',a.body) as eind 
    FROM (
    SELECT t.ACTION_STATEMENT as body FROM information_schema.triggers t 
    WHERE t.TRIGGER_NAME like %aname% 
) a 
) b 
4

作爲一種解決方法,您可以在觸發器的正文內寫入註釋文本,例如, -

CREATE TRIGGER trigger1 
AFTER INSERT 
ON table1 
FOR EACH ROW 
BEGIN 
    -- 'Wonderful trigger with insert inside'; 
    INSERT INTO table2 VALUES(NEW.id); 
END 
1

你可以把在MySQL觸發評論中這樣way-

CREATE TRIGGER trigger1 
AFTER INSERT 
ON table1 
FOR EACH ROW 
BEGIN 
    /*!99999 This is my comment , i will ignore at run time. */ 
    INSERT INTO table2 VALUES(NEW.id); 
END 

爲防止執行「代碼」,您可以使用非常高的版本號,例如99999.

0

您還可以使用

#"your comment"似乎在其他語言,例如像//"your comment"

工作:C,C++,PHP等

+1

感謝@Dominik,但我認爲它沒有區別,因爲MySQL沒有與觸發器相關的評論信息。 – bluish

+0

@bluish沒問題,但我認爲我還沒有完全理解你。你的意思是沒有選項可以將評論保存到MySQL評論中? – Dominik

+0

是的,對於表格,您可以爲其元數據添加註釋,但對於觸發器,則不支持。 – bluish