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作用

1. delimiter delimiter是mysql分隔符,在mysql客户端中分隔符默认是分号(;)。 如果一次输入的语句较多,并且语句中间有分号,这时需要新指定一个分隔符。

mysql 触发器的使用(慎用)

【前言】最近有一个需求,店铺积分统计,每生成一条积分消费(赠送)日志记录,对应的店铺增加对应的剩余总积分和消费总积分,想了想觉得 mysql 触发器不错,然后尝试写了一个。注意,触发器基于诸多原因,请...

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

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

mysql中delimiter的使用

create trigger t_insertregionbefore insert on domaindumpfor each rowbegin     set new.sourceregion=(...
  • ssyan
  • ssyan
  • 2011-06-29 10:19
  • 7691

mysql中创建表的注意事项和好的习惯

1.一定写注释            字段多了或者时间长了就很容易忘记每个字段的字段是用来做什么的。写注释是一个很好的习惯,不管是自己测试的表还是字段很少的表,时时刻刻养成好习惯。 2.字段长...

mysql 临时表和内存表创建 查询 删除以及注意事项

mysql 临时表和内存表创建 查询 删除以及注意事项临时表和内存表的ENGINE 不同,临时表默认的是MyISAM,而内存表是MEMORY ,临时表只对当前会话可见,连接断开时,自动删除! m...

MySQL 磁盘复制技术--DRBD:优缺点比较、注意事项以及最佳实践

DRBD 是内核模块方式实现的块级别同步复制技术、这里的同步级别是可以调整的   因为DRBD 是利用网卡进行块复制、如果、这里用 Infiniband 进行传输、便可以有效处理高并发   这是种复制...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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