Mysql中触发器中的DELIMITER作用及用法

一.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语句中的语句分隔符,用于区分多个语句。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值