A-A+

在mysql创建和使用trigger

2009年01月05日 学习随笔 暂无评论 阅读 1 次

用程序处理来代替了触发器的工作。这样业务逻辑比较清晰,有人也说用程序处理不会出现问题,而且大多数人也是这么做的,但是有两次编辑遇到了致命的问题,删除表a的一条记录,对应表b中的记录没有改变,于是决定用触发器代替程序来工作。。。。

  这两天一直研究触发器,简单做一下记录。
  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  

给我留言

Copyright © 浩然东方 保留所有权利.   Theme  Ality 07032740

用户登录