• 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();
  • 相关阅读:
    【日常学习】codevs1287 矩阵乘法题解
    数据库系统概论-[04]索引
    oracle-sql分析练习
    大水题(容斥原理)
    大水题(容斥原理)
    hdu 2952 Counting Sheep
    hdu 2952 Counting Sheep
    HDU 2612 Find a way
    HDU 2612 Find a way
    hdu 2181 哈密顿绕行世界问题
  • 原文地址:https://www.cnblogs.com/go4mi/p/5543683.html
Copyright © 2020-2023  润新知