zoukankan      html  css  js  c++  java
  • sql温习---存储过程

    存储过程:

    优点:一个sql的函数,已经预编译过。调用简单,执行比较快,对权限有比较好控制。

    缺点:执行过程没有日志(中间数据表修改结果不算),不方便定位问题。中间操作多表过程锁表,不能利用缓存组件也会造成执行效率低

    基本语法:

    CREATE PROCEDURE  过程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 ...] 过程体

    drop PROCEDURE if exists `test_procedure`;
    delimiter ;; //构建结束符号。在sql编译器中,本来就会把;作为结束;
    create DEFINER=`root`@`localhost` procedure `test_procedure`(IN a int,OUT b int)//IN输入参数,OUT输出参数,INOUT 既是输入又是输出
    BEGIN
    set b=a+4;
    
    end ;;
    
    delimiter;//
    分隔符

    MySQL默认以";"为分隔符,如果没有声明分割符,则编译器会把存储过程当成SQL语句进行处理,因此编译过程会报错,所以要事先用“DELIMITER //”声明当前段分隔符,让编译器把两个"//"之间的内容当做存储过程的代码,不会执行这些代码;“DELIMITER ;”的意为把分隔符还原

    
    

    验证结果

    call test_procedure(9,@q);
    select @q as sum;

    我目前用到的应用:利用存储过程检查表结构,以此为条件

    学习的时间不一定要特定安排
  • 相关阅读:
    win7开启硬盘AHCI
    (32)odoo中的编码问题
    (31)odoo中的时间
    (30)odoo中的快捷标签
    css3 移动端页面全屏旋转,横屏显示。
    Turn.js 实现翻书效果
    WebStorm 2016 最新版激活(activation code方式)
    vue 状态管理vuex(九)
    webstorm中.vue报错(es6语法报错)-转
    Robot Framework自动化测试(一)
  • 原文地址:https://www.cnblogs.com/zhongzheng123/p/8056603.html
Copyright © 2011-2022 走看看