2016-06-29 55 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重置为默认;以获得良好的度量。