Mysql存储过程,函数,视图,触发器的用法

存储过程

  • 1语法
      CREATE PROCEDURE sp_name ([proc_parameter[,...]])
            [characteristic ...] routine_body
  • 2举例
         DROP PROCEDURE IF EXISTS pro_add;
           DELIMITER //
           CREATE PROCEDURE pro_add( IN p1 INT, IN p2  INT, INOUT p3 INT)
           BEGIN
              SET p3=p1+p2;
           END
           //

           CALL pro_add(1,2,@abc);
           SELECT @abc;  

函数 (特殊的存储过程 暂时不支持 out)

  • 1语法结构:
      CREATE FUNCTION sp_name ([func_parameter[,...]])
         RETURNS type
         [characteristic ...] routine_body
    
  • 2举例
      DROP FUNCTION IF EXISTS fun_add;
      DELIMITER //
      CREATE FUNCTION fun_add(p1 INT,p2 INT)
      RETURNS INT
      BEGIN
          RETURN p1+p2;
      END
      //
      SET @abc=fun_add(1,2);
     SELECT @abc;
    

视图

  • 1>语法结构
    create view 名称 as sql语句

    • 视图操作举例
      CREATE TABLE `arcticle` (
       `id` int(11) NOT NULL AUTO_INCREMENT,
       `title` varchar(200) DEFAULT NULL,
       `content` varchar(200) DEFAULT NULL,
       `createuser` varchar(200) DEFAULT NULL,
       PRIMARY KEY (`id`)
      ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
      CREATE VIEW vi_arc AS SELECT title,content FROM arcticle
      SELECT * FROM arcticle
      UPDATE vi_arc SET content='java永不过时' WHERE title='java是否过时'
      DELETE FROM vi_arc WHERE title='java是否过时' 
      INSERT INTO vi_arc VALUES('abc','ccc')
      

      触发器

  • 1>语法结构

      CREATE TRIGGER trigger_name trigger_time trigger_event
      ON tbl_name FOR EACH ROW trigger_stmt
    
  • 2>举例:

       DROP TRIGGER trg_arc
         DELIMITER //
         CREATE TRIGGER trg_arc 
         BEFORE INSERT
         ON arcticle 
         FOR EACH ROW
         BEGIN
            IF new.createuser IS NULL THEN
             SET new.createuser='张三';
            END IF;
         END
         //  
    

    3>注意
    delete和update 有 old对象
    insert和update 有new对象
    update 有old,new对象
    after触发器 不能够修改new的值


 上一篇
ajax获取返回的map集合 ajax获取返回的map集合
后台代码: 或: 前台ajax获取: (1)第一种: (2)第二种: (3)第三种:in循环 (4)第四种:for循环 (5)第五种:each循环 链接:http://blog.csdn.net/t0404/article/d
2019-01-20
下一篇 
Windows Mysql 5.7.15 主从复制 Windows Mysql 5.7.15 主从复制
Windows Mysql 5.7.15 主从复制 Windows MySQL 解压版安装 1、配置环境变量 2、解压出来的目录默认会有my-default.ini,该配置文件主要用于配置 basedir = D:\soft\mys
2019-01-20
  目录