• mysql存储过程----临时表 temporary


    在存储过程中可以使用临时表,下面有一个分割字符串的例子

    语法

    1.创建:create temporary table 表名(列信息);

    2.删除:drop table 表名;

      3.清空:truncate table 表名;

    注意:

    1.在mysql中,临时表一但建立,销毁的条件是session中断,所以为了避免创建过程中出现“table 'XX' already exists”的错误,将建表语句改为CREATE TEMPORARY TABLE if not exists 表名(列信息);

    2.临时表只有在用户退出连接时(session中断)时,清空数据,不然数据一直累积,若有需求,需要在临时表使用之后清空临时表

    例子

    一个和java的spilt作用相似存储过程

    在存储过程中可以使用临时表,下面有一个分割字符串的例子
    
    语法
    
    1.创建:create temporary table 表名(列信息);
    
    2.删除:drop table 表名;
    
      3.清空:truncate table 表名;
    
    注意:
    
    1.在mysql中,临时表一但建立,销毁的条件是session中断,所以为了避免创建过程中出现“table 'XX' already exists”的错误,将建表语句改为CREATE TEMPORARY TABLE if not exists 表名(列信息);
    
    2.临时表只有在用户退出连接时(session中断)时,清空数据,不然数据一直累积,若有需求,需要在临时表使用之后清空临时表
    
    
    
    例子
    
    一个和java的spilt作用相似存储过程
    
    
    CREATE DEFINER=`root`@`%` PROCEDURE `str_spilt`(IN `str` varchar(2000))  
    BEGIN  
        #分割字符串  
        set @i=0;  
        CREATE TEMPORARY TABLE if not exists str_spilt_result(id BIGINT(20) NOT NULL);   
        truncate table str_spilt_result;  
        SET @cnt = 1+(LENGTH(str) - LENGTH(REPLACE(str,',','')));  
        WHILE @i < @cnt DO  
            SET @i = @i + 1;  
            SET @result = REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(str,',',@i)),',',1));  
            INSERT INTO str_spilt_result(id) VALUES (@result);  
        END WHILE;  
        SELECT * from str_spilt_result;  
    END  
  • 相关阅读:
    N个数求和
    求整数段和
    连续因子
    L1-005 考试座位号
    PTA Java tips(转载)
    个位数统计
    flink编译支持CDH6.2.0(hadoop3.0.0)
    hdfs/hbase 程序利用Kerberos认证超过ticket_lifetime期限后异常
    spring boot通过@Bean注解定义一个Controller
    【TypeScript】TypeScript 学习 2——接口
  • 原文地址:https://www.cnblogs.com/icebutterfly/p/9050109.html
Copyright © 2020-2023  润新知