A-A+
在mysql创建和使用trigger
用程序处理来代替了触发器的工作。这样业务逻辑比较清晰,有人也说用程序处理不会出现问题,而且大多数人也是这么做的,但是有两次编辑遇到了致命的问题,删除表a的一条记录,对应表b中的记录没有改变,于是决定用触发器代替程序来工作。。。。
这两天一直研究触发器,简单做一下记录。
mysql -uroot -hlocalhost -p;
use database;
show tables;
show triggers;
drop trigger trigger_name;
mysql -uroot -hlocalhost -p;
use database;
show tables;
show triggers;
drop trigger trigger_name;
mysql> CREATE TABLE account (acct_num INT, amount DECIMAL(10,2));
mysql> CREATE TRIGGER ins_sum BEFORE INSERT ON account
-> FOR EACH ROW SET @sum = @sum + NEW.amount;
具体参考mysql手册:http://dev.mysql.com/doc/refman/5.1/zh/triggers.html
手册上说:对于具有相同触发时间和触发事件的表,不能有2个触发程序。而我想能不能把insert和delete触发的事件写到一个触发器中,通过if判断来实现,但是我没有找到思路,比较郁闷。。。目前只能用来个触发器来实现。。
写好一个触发器文件(test.sql),通过命令行执行的方法:source test.sql;
简单做这么点记录吧,具体的例子去看手册中的触发器部分就全明白了,不是很难。。。
一篇不错的文章:http://www.misuland.com/HTML/1172745448463.html