zoukankan      html  css  js  c++  java
  • 【瞎折腾系列】mysql存储过程初接触

    开始【瞎折腾系列】,这个系列纯属瞎折腾,可能没有什么实际意义。

    mysql存储过程生成表:

    新建一张user表,包含id, username , password , usertable字段。

    然后创建存储过程:

    create PROCEDURE create_table()
    BEGIN
    DECLARE n int DEFAULT 0;
    DECLARE t_error INTEGER DEFAULT 0;  
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;
    temp_loop:LOOP
    
    START TRANSACTION;  
    
    SET @m=replace(UUID(),'-','');
    set @str=concat('create table x',@m,'(id int)');
    prepare stmt FROM @str;
    EXECUTE stmt;
    
    set @insertstr=concat('insert into user(username,password,usertable) values("test","testp","x',@m,'")');
    prepare stmt1 FROM @insertstr;
    EXECUTE stmt1;
    
    IF t_error = 1 THEN  
    ROLLBACK;  
            ELSE  
                COMMIT;  
            END IF;  
    
    set n=n+1;
    
    IF n>=2000 THEN 
    LEAVE temp_loop;
    END IF;
    
    END LOOP;
    
    END

    通过UUID()获取UUID,然后去掉-线,然后在前面加个x,为什么加x呢,因为直接用UUID做表名有时候会报错,具体原因不明。

    然后生成username,password,再把生成的表名插入到usertable字段中。

    通过CALL creat_table();执行存储过程。

  • 相关阅读:
    LintCode-Search for a Range
    LintCode-Serialization and Deserialization Of Binary Tree
    LeetCode-Reverse Words in a String
    LeetCode-Reorder List
    LeetCode-Word Break
    LeetCode-Word Ladder
    LeetCode-Valid Palindrome
    cf div2 237 D
    POJ 1759
    cf div2 238 D
  • 原文地址:https://www.cnblogs.com/acehalo/p/3917021.html
Copyright © 2011-2022 走看看