zoukankan      html  css  js  c++  java
  • mysql5 存储过程和触发器示例

    一、存储过程

    1.1 语法

    CREATE
        [DEFINER = { user | CURRENT_USER }]
     PROCEDURE sp_name ([proc_parameter[,...]])
        [characteristic ...] routine_body
     
    proc_parameter:
        [ IN | OUT | INOUT ] param_name type
     
    characteristic:
        COMMENT 'string'
      | LANGUAGE SQL
      | [NOT] DETERMINISTIC
      | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
      | SQL SECURITY { DEFINER | INVOKER }
     
    routine_body:
      Valid SQL routine statement
     
    [begin_label:] BEGIN
      [statement_list]
        ……
    END [end_label]

    1.2 示例

    CREATE DEFINER=`xrh`@`%` PROCEDURE `proc_sumArticleVup`(IN `site` varchar(50), OUT `total` int)
    #BEGIN   单条语句不能用BEGIN END;包裹,否则无法执行,会抛出 ERROR 1064 (42000): You have an error in your SQL syntax; 
    # check the manual that corresponds to your MySQL server version for the right syntax to use
    SELECT Sum(articleVup) into total FROM cms_article WHERE opSite=site limit 100; #END;

    二、触发器:

    2.1 语法

    CREATE TRIGGER <触发器名称>
    { BEFORE | AFTER }
    { INSERT | UPDATE | DELETE } 
    ON <表名称>
    FOR EACH ROW
    <触发的SQL语句>

    2.2 示例

    CREATE TRIGGER sslm_reply_insert_oper_check_data
    AFTER INSERT ON
    sslm_reply
    FOR EACH ROW
    BEGIN
       insert into oper_check_data (code,dataId,createTime) values ('sslm_reply',new.id,now());
    END
  • 相关阅读:
    服务器出现大量的127.0.0.1:3306 TIME_WAIT连接 解决方法 [转载]
    phpize安装php扩展CURL
    linux位数查看
    Linux下Sublime Text 3的安装
    ECstore后台报表显示空白问题解决办法
    centos 上安装phpstorm
    Nginx禁止目录执行php文件权限
    vue 动画
    vue的路由
    组件的传值 组件之间的通讯
  • 原文地址:https://www.cnblogs.com/101key/p/13645382.html
Copyright © 2011-2022 走看看