zoukankan      html  css  js  c++  java
  • MySQL触发器

    所谓的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
  • 相关阅读:
    TSQL编程的全局变量
    一、读大学,究竟读什么?
    受用一生的心理寓言
    字符串函数
    android wait notify实现线程挂起与恢复
    Java Thread.interrupt 中断JAVA线程
    android实现文件下载功能的3种方法
    Android startActivityForResult 和 setResult的使用
    Android 软键盘盖住输入框的问题
    Android蓝牙操作
  • 原文地址:https://www.cnblogs.com/mengnan/p/6790429.html
Copyright © 2011-2022 走看看