MySQL的触发器创建之注意事项(有关delimiter)

原创 2015年07月10日 20:25:45

今天晚上在自己的数据库上做了一个触发器。由于自己之前是使用SQL Server2005学习SQL语句的,所以在这个简单的触发器设计出现了一些自己意想不到的BUG。现在我来简单的说一下:

这里使用到 diary表、comments表和favour表。创建触发器语句是这样的:

create trigger delete_diary_tri
before delete on diary
for each row begin
	delete from comments where comments.did = old.did;
end;

结果一直报错:

后来参考了 : http://blog.sina.com.cn/s/blog_4c197d420101d3oa.html

http://www.cnblogs.com/xiangxiaodong/p/3929061.html

http://www.cnblogs.com/rootq/archive/2009/05/27/1490523.html

发现了 delimiter 的作用与重要之处:

默认情况下,delimiter “;” 用于向 MySQL 提交查询语句。在存储过程中每个 SQL 语句的结尾都有个 “;”,如果这时候,每逢 “;” 就向 MySQL 提交的话,当然会出问题了。于是更改 MySQL 的 delimiter,上面 MySQL 触发器编程这样子了:

delimiter $$
create trigger delete_diary_tri
before delete on diary
for each row begin
	delete from comments where comments.did = old.did;
end $$
delimiter ;

成功运行!

版权声明:本文为博主原创文章,未经博主允许不得转载。

mysql中delimiter的使用

create trigger t_insertregionbefore insert on domaindumpfor each rowbegin     set new.sourceregion=(...
  • ssyan
  • ssyan
  • 2011年06月29日 10:19
  • 8023

Mysql中delimiter作用

1. delimiter delimiter是mysql分隔符,在mysql客户端中分隔符默认是分号(;)。 如果一次输入的语句较多,并且语句中间有分号,这时需要新指定一个分隔符。...
  • u014285882
  • u014285882
  • 2014年04月26日 22:49
  • 3683

MySQL——触发器的创建和使用总结

什么是触发器 触发器(TRIGGER)是MySQL的数据库对象之一,从5.0.2版本开始支持。该对象与编程语言中的函数非常类似,都需要声明、执行等。但是触发器的执行不是由程序调用,也不是由手工启动,...
  • Goskalrie
  • Goskalrie
  • 2016年11月03日 13:34
  • 20068

MySQL数据库中delimiter的作用概述

 以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获。 ...
  • zxh2075
  • zxh2075
  • 2016年12月02日 11:21
  • 834

MySql中delimiter的作用是什么?

MySql中delimiter的作用是什么? 这个命令与存储过程没什么关系吧。 其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。 默认情况下,delimite...
  • magic_hwz
  • magic_hwz
  • 2016年08月18日 17:15
  • 1284

MySQL用户权限导致的创建Trigger失败

说来惭愧,MySQL一直处于只会用,不怎么理解的阶段。甚至是一些较为深层次的管理,都不怎么熟悉,得加强啊! 近日,系统测试,使用MySQL数据库,需要在某个表上创建触发器,数据库是在本机安装。但...
  • summer_sy
  • summer_sy
  • 2017年05月23日 08:51
  • 488

MySQL5.6 触发器的使用(条件分支、变量的使用)

use fs; /*product_info表中,仪器和试剂一定是不同的产品,id上不可能重复,可以放心删*/ create trigger check_record_delete_tri...
  • zhouyingge1104
  • zhouyingge1104
  • 2014年07月07日 20:11
  • 23921

MySQL触发器Trigger实例篇

MySQL触发器Trigger实例篇 发表于668 天前 ⁄ IT技术 ⁄ 暂无评论 以前关注的数据存储过程不太懂其中奥妙,最近遇到跨数据库,同时对多个表进行CURD(Create...
  • hireboy
  • hireboy
  • 2014年01月10日 11:45
  • 28818

在navicat for mysql中建立触发器

Mysql的触发器(trigger):监视某种操作,并触发另一种操作。简要说:对表M的操作A触发了对表N的操作B。   触发器创建语法四要素: 1.、引发对象(哪一张表引发的?也就是说表M是谁?...
  • liyun211
  • liyun211
  • 2016年11月01日 09:04
  • 6542

mysql 触发器的创建 修改 删除

mysql 触发器的创建 修改 删除 //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 ‘日记本的回忆‘   show columns fr...
  • zhihui1017
  • zhihui1017
  • 2015年12月20日 21:27
  • 1679
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL的触发器创建之注意事项(有关delimiter)
举报原因:
原因补充:

(最多只允许输入30个字)