zoukankan      html  css  js  c++  java
  • mysql存储过程

    数据库存储过程

    1.无参数的存储过程

    USE `markmanger`$$
    DROP PROCEDURE IF EXISTS `test_sp2`$$
    CREATE DEFINER=`hao`@`%` PROCEDURE `test_sp2`()
        BEGIN
            UPDATE ContactBook SET CONTACTNAME='www111' WHERE CONTACTID=5;
         
        END$$   

    2.有参数的(无事务)

    2.1 输入参数的存储过程

    DELIMITER $$
    USE `markmanger`$$
    DROP PROCEDURE IF EXISTS `test_sp2`$$
    CREATE DEFINER=`hao`@`%` PROCEDURE `test_sp2`(uname VARCHAR(10),phoneum VARCHAR(10))
        BEGIN
        UPDATE ContactBook SET CONTACTNAME=uname WHERE CONTACTID=5;
        UPDATE ContactBook SET CONTACTPHONE=phoneum WHERE CONTACTID=5;
        END$$
    DELIMITER ;    

    调用

    CALL test_sp2('aa','bb');

    1.2输出参数的存储过程

    DELIMITER $$
    USE `markmanger`$$
    DROP PROCEDURE IF EXISTS `test_sp3`$$
    CREATE DEFINER=`hao`@`%` PROCEDURE `test_sp3`(OUT s VARCHAR(10))
        BEGIN
        SELECT COUNT(*) FROM ContactBook INTO s; 
        SELECT s;
        END$$
    DELIMITER ;

    调用

    CALL test_sp3(@S);

    3.带事务的存储过程

    DELIMITER $$
    USE `markmanger`$$
    DROP PROCEDURE IF EXISTS `test_sp4`$$
    CREATE DEFINER=`hao`@`%` PROCEDURE `test_sp4`()
        BEGIN 
        DECLARE t_error INTEGER DEFAULT 0;  
        DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;   
            START TRANSACTION;  
    
               SELECT COUNT(*) FROM ContactBook;
                             
            IF t_error = 1 THEN  
                ROLLBACK;  
            ELSE  
                COMMIT;  
            END IF;  
        END$$  
    DELIMITER ; 

    调用

    CALL test_sp4();
  • 相关阅读:
    java中重载与重写的区别
    Java中数组的初始化方式
    break和continue的区别
    do while 循环和while循环的区别
    Java注释分类
    Java中的switch语句后面的控制表达式的数据类型
    DBA_TABLES之BLOCKS AND EMPTY_BLOCKS
    show_space 脚本
    Linux 6 配置multipath
    环保创业的可行之道——Leo鉴书上66
  • 原文地址:https://www.cnblogs.com/go4mi/p/5543683.html
Copyright © 2011-2022 走看看