DELIMITER //在触发器中做什么?

时间:2009-08-28 12:13:39

标签: sql mysql

DELIMITER //

它的用途是什么?

5 个答案:

答案 0 :(得分:63)

它将语句分隔符从;更改为//。这样你就可以在你的触发器定义中编写;,而不会让MySQL客户端误解为你完成它的意思。

请注意,在更改回来时,它是DELIMITER ;,而不是DELIMITER;,正如我见过的人们试图做的那样。

答案 1 :(得分:21)

在SQL中,您使用分隔符关闭每个语句,分隔符默认为分号(;)。在触发器中,您需要编写多个语句,每个语句以分号结尾。要告诉MySQL那些分号不是你的触发器语句的结尾,你暂时更改分隔符;到//,所以MySQL会知道触发器语句只在它回复//.

时结束

答案 2 :(得分:2)

添加一个例子:
使用mysql shell命令时,我们使用;分隔符来关闭每个语句。但是,如果我们想要构建商店过程和触发器,我们还需要在这些语句中添加分号;

delimiter //
create trigger log_students after insert on students
for each row
  begin
    insert into log_students(change_by, change_at) values(USER(), NOW());
  end//
delimiter ;

答案 3 :(得分:1)

Simple在标准的默认SQL中设置语句分隔符的结尾(;分号)。 如果要在SQL中使用;,或者使用嵌入式SQL(可能会导致混淆),则更改字符可能很有用。类似地,示例中的//可能会导致嵌入式SQL混淆,或者您可能希望在SQL中使用它。因此暗示使用DELIMITER来设置适合您的应用程序和需求的分隔符。

答案 4 :(得分:0)

阅读(ummmm)mysql documentation

delimiter是您发送到mysql命令行客户端的每个命令结束的标记。

delimiter不仅与触发器有关,而且定义触发器和存储过程是一个强大的用例,因为您希望它们包含分号(;),否则它们是默认的delimiter