论坛风格切换切换到宽版
  • 4352阅读
  • 1回复

[分享]MySql 中的 触发器使用 [复制链接]

上一主题 下一主题
离线voiphaozi
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2011-04-18
关键词: asteriskmysql
MYsql 中的 触发器使用。。
什么时候下使用触发器。。
      当一个表中增加或修改了一条记录时候,需要在另外一张表中更新,那么这时候需要用到触发器的使用


1:创建触发器:
  1. CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name    
  2. FOR EACH ROW    
  3. BEGIN    
  4. trigger_stmt    
  5. END;  
  6. 大写的为关键字  
  7. trigger_name:触发器的名字,我常用的命名规则t_name_tableName_(b|a)(i|u|d),t:触发器标识,name:英文名,tableName:表名,b(BEFORE):标识是触发事件之前,a(AFTER):标识触发事件之后,i(insert):标识insert事件,u(update):标识update事件,d(delete):标识delete事件;  
  8. trigger_time:触发时间(BEFORE或AFTER)  
  9. trigger_event:事件名(insert或update或delete)  
  10. tbl_name:表名(必须是永久性表)  
  11. trigger_stmt:执行语句(可以是复合语名),使用别名OLD和NEW,能够引用与触发程序相关的表中的列。  
  12. DROP TRIGGER [schema_name.]trigger_name; //删除触发器

2:简单例子
  
  1. mysql -u root -p               //进入到mysql  
  2. password:                      //输入密码  
  3. use asterisk                  //进入到该数据库  
  4. show tables;                 //可以查看的表  
  5. delimiter //  
  6. CREATE TRIGGER insert_cdr AFTER INSERT ON cdr  
  7. FOR EACH ROW  
  8. BEGIN  
  9. update tel set phone=NEW.dst where id=NEW.billsec;  
  10. END;  
  11. //  
  12.   
  13. delimiter ;    
  14. 创建了一个名为insert_cdr的触发程序,当每填加一条数据的时候则更新tel表中id=cdr表中的billsec值相等的 phone=cdr中的dst字段  
  15.   
  16. show triggers;              //可以查看到刚创建的触发程序  
  17. drop trigger insert_cdr;    删除该触发器;

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线waka417888
只看该作者 沙发  发表于: 2011-10-01
用户被禁言,该主题自动屏蔽!
欢迎来到“Asterisk资源分享-互助学习社区”——-Asterisk工程师的家园
请记住我们的网址 www.Asterisk-help.com [这是默认签名,更换签名点这里<<]
快速回复
限100 字节
>> 支持Asterisk-help社区, 谢绝无意义字符回复
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个