DELIMITER //
它的用途是什么?
答案 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
。