码迷,mamicode.com
首页 > 数据库 > 详细

MySQL触发器

时间:2017-04-30 22:53:16      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:事务   use   写入   creat   用户   new   文本   初始化   upd   

所谓的MySQL触发器实际上与一些编程语言中的事件/事件处理程序类似


触发器的建立

  • 建立一张示例表。CREATE TABLE account(acct_num INT,account DECIMAL(10,2));
  • 建立触发器示例:CREATE TIGGER ins_sum BEFORE INSERT ON account FOR EACH ROW SET @sum=@sum+NEW.account;
    以上的触发器示例,创建了一个名为ins_sum的触发器,BEFORE指明了触发的动作时间,与之对应的是AFTERINSERT指明了激活触发器的动作,此位置还可以用UPDATE/DELETE;跟在FOR EACH ROW后面的语句定义了激活触发器后将要执行的程序。在上面的例子中,触发而执行的语句是SET语句,负责将插入的account的值加起来,其中NEW.account意思是将要插入到新行的account的值。
    使用上例之前,应首先将@account初始化,然后再执行INSERT语句
  • 注意:不能为同一个表同一个触发时间定义两个触发器,这也是没有意义的
  • 注意:触发器不能调用动态SQL,也不能使用关于开始或结束事务的语句
  • 可以使用OLDNEW来更新或引用动作执行之前和之后的对象

触发器的删除

  • DROP TRIGGER [scheme_name.]trigger_name

触发器的使用

  • 当执行触发器所定义的动作时,触发器定义的程序将自动执行

批量执行SQL语句

    • 将想要执行的SQL语句写入一个文本文件,例如test_file。然后执行mysql db_name < test_file --user=root
    • 如果文本文件中已经写明USE [db_name],应执行mysql < test_file --user=root 以上两个例子,MySQL用户名为root,文本文件为test_file
    • 如果正在执行MySQL,可以使用source或者\.。e.g.:source test_file.sql或者\. test_file.sql

MySQL触发器

标签:事务   use   写入   creat   用户   new   文本   初始化   upd   

原文地址:http://www.cnblogs.com/mengnan/p/6790429.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!