一.DELIMITER 作用:
在MySQL中,DELIMITER是用来指定SQL语句中的语句分隔符的关键字。默认情况下,MySQL使用分号(;)作为语句的结束符号。然而,当在一个语句中包含了多个语句,比如在创建存储过程、触发器等时,如果直接使用分号作为结束符号,会导致MySQL将整个语句作为一个语句进行解析,从而导致语法错误。
二.DELIMITER用法:
为了解决这个问题,可以使用DELIMITER关键字来指定一个不同于分号的结束符号,例如//。
例如下面例子是创建的更新操作的触发器来实现学习表的日志记录操作:
在下面代码中:
首先在触发器创建语句前使用了DELIMITER //来指定结束符号为//,
这样在创建触发器时,MySQL会将每个语句作为一个独立的语句进行解析,而不会将整个代码块作为一个语句。
一旦完成了需要使用DELIMITER进行分隔的代码块,可以使用DELIMITER ;来将结束符号恢复为默认的分号。
这样可以确保在其他语句中继续使用分号作为结束符号。 如:下面代码中的 end后面加了一个 ' ; '
# 2.创建更新操作的触发器
DELIMITER // # 指定结束符号
create trigger update_trigger
after update on 学习表
for each row
begin
insert into xx_log(操作类型, 时间, 新学号, 新课程号, 新成绩)
values ('更新', now(), old.学号, old.课程号, old.成绩);
end;
//
DELIMITER ;
三.总结:
DELIMITER关键字的作用是指定SQL语句中的语句分隔符,用于区分多个语句。