2016-06-29 86 views
-4

在MySQL查詢中,$$表示什麼?

DELIMITER $$ 
CREATE TRIGGER before_population_update 
BEFORE UPDATE ON City 
FOR EACH ROW BEGIN 
INSERT INTO City_Changes 
SET ACTION = ‘update’, 
CityID = OLD.ID, 
Population = OLD.Population, 
User = USER(), 
ChangedOn = NOW(); 
END $$ 
DELIMITER ; 
+0

mysql的默認分隔符是;並在上面的觸發定義中定義一些其他分隔符$$ –

+0

您正在將其定義爲第一行中的分隔符。你認爲這意味着什麼?它沒有特別的意義。 – TZHX

+0

這將幫助你粘貼所有文本,直到它在單個塊中執行$$ –

回答

2

觸發器和存儲過程是[潛在]由幾個語句,分別通過;終止。由於;用於終止單個語句,因此他們需要一種方法來指示過程/觸發已完成 - 而這正是delimiter命令發揮作用的地方。

在第一行中,我們定義了以下觸發器將由$$序列定界(結束)。然後我們繼續聲明一個觸發器(從create trigger開始並按照我們的定義,以$$結尾)。然後,在最後一行,我們將delimiter重置爲默認;以獲得良好的度量。