• mysql 存储过程 demo


    -- 查看存储过程
    SHOW PROCEDURE STATUS;
    
    -- 显示pro存储过程的详细信息
    SHOW CREATE PROCEDURE pro;
    
    -- 删除pro存储过程
    DROP PROCEDURE IF EXISTS pro;
    
    -- 创建简单的存储过程
    DELIMITER //
    DROP PROCEDURE IF EXISTS pro//
    CREATE PROCEDURE pro()
    BEGIN
    SELECT 1;
    END//
    DELIMITER ;
    
    -- 调用存储过程
    CALL pro();
    
    -- 创建带输入参数的存储过程
    DELIMITER //
    DROP PROCEDURE IF EXISTS pro//
    CREATE PROCEDURE postVisitor(IN input INT)
    -- 批量插入visitor数据
    BEGIN
    -- 声明一个int类型的变量
    DECLARE i INT;
    SET i = 0;
    WHILE i < input DO
    INSERT INTO visitor(hid,ecid,cid,uid,`name`,phone,photo,car_plate,`status`,euid,appointment_time,visit_time,create_time)
    VALUES(1,1,1,1,CONCAT('L',i),CONCAT('1850040899',i),'http://7xtge5.com2.z0.glb.clouddn.com/logo.png',CONCAT('京A-8251',i),IF(i%2=0,0,1),12,CURDATE(),NULL,NOW());
    SET i = i + 1;
    END WHILE;
    END//
    DELIMITER ;
    CALL pro(10);
    -- 创建带输出参数的存储过程 DELIMITER // DROP PROCEDURE IF EXISTS countVisitor
    CREATE
    PROCEDURE countVisitor(OUT total INT) BEGIN SELECT MAX(euid) INTO total FROM visitor; END// DELIMITER ; -- 调用该存储过程,注意:输出参数必须是一个带@符号的变量 CALL countVisitor(@total);
    SELECT @total;
    -- 创建带输入和输出参数的存储过程 DELIMITER // DROP PROCEDURE IF EXISTS pro3// CREATE PROCEDURE pro3(IN input INT,OUT output char(2)) BEGIN IF input%2 = 0 THEN -- 用@符号加变量名的方式定义一个变量,与declare类似 SET @v = "偶数"; ELSE SET @v = "奇数"; END IF; -- 语句体内可以执行多条sql,但必须以分号分隔 SET output = @v;
    END
    // DELIMITER ; -- 调用该存储过程,注意:输入参数是一个值,而输出参数则必须是一个带@符号的变量 CALL pro3(1,@v); SELECT @v; -- 创建既做输入又做输出参数的存储过程 DELIMITER // DROP PROCEDURE IF EXISTS sp4 // CREATE PROCEDURE sp4(INOUT p4 INT) BEGIN IF p4 = 4 THEN SET p4 = 400; ELSE SET p4 = 500; END IF;
    END//
    DELIMITER ; CALL sp4(
    @pp);
    SELECT @pp;
    -- 这里需要先设置一个已赋值的变量,然后再作为参数传入 SET @pp = 4; CALL sp4(@pp);
    SELECT @pp;
    -- 去掉unique key 约束 ALTER TABLE user_auth DROP INDEX `username`; -- IF(expr1,expr2,expr3) SELECT u.id,IF(u.status = 1,"启用","禁用") AS statusStr FROM estate_user_doormach AS u; -- limit offset SELECT aub.id FROM app_user_basic AS aub ORDER BY aub.id ASC LIMIT 3 OFFSET 0; -- 不知道什么鬼 SELECT DATE_ADD(CURDATE(),INTERVAL -DAY(CURDATE())+1 DAY);

     -- 级联插入表数据id

    DELIMITER //
    DROP PROCEDURE IF EXISTS insertNode//
    CREATE PROCEDURE insertNode(IN input INT)
    BEGIN
    DECLARE i INT;
    DECLARE id INT;
    SET i = 0;
    WHILE i < input DO
    INSERT INTO a(va) VALUES(i);
    SELECT LAST_INSERT_ID() INTO id;
    INSERT INTO b(id,va) VALUES(id,i+10);
    SET i = i + 1;
    END WHILE;
    END //
    DELIMITER ;
    
    CALL insertNode(2);
  • 相关阅读:
    如何使用plsql导出oracle中的建表语句文件
    启动Tomcat 7.0 报 Server Tomcat v7.0 was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.
    Spring + springMvc + MyBatis 整合步骤(收藏)
    同台电脑部署多组Tomcat负载均衡(或集群)
    Apache+Tomcat部署负载均衡(或集群)
    WebLogic部署集群和代理服务器
    iOS视频直播初窥:高仿<喵播APP>
    iOS高仿:花田小憩3.0.1
    Preprocessor Macros
    App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. 解决方案
  • 原文地址:https://www.cnblogs.com/ClassNotFoundException/p/6002896.html
Copyright © 2020-2023  润新知