使用mysql存储过程来造测试数据

创建测试数据表

CREATE TABLE ly_message (

  msg_id INT (32),

  content VARCHAR (128),

  TYPE INT,

  creator_id VARCHAR (128),

  create_time TIMESTAMP

);

创建存储过程

DELIMITER $$
USE test$$
DROP PROCEDURE IF EXISTS create_data$$
CEATE DEFINER=test@127.0.0.1 PROCEDURE create_data(IN  loop_times INT)
BEGIN  
    DECLARE var INT DEFAULT 0;    
    WHILE var<loop_times DO    
    SET var=var+1;   
    INSERT INTO ly_message (msg_id,content,TYPE,creator_id,create_time)   
    VALUES (var,CONCAT("cust_",MD5(UUID()),FLOOR(1 + (RAND() * 2))),FLOOR(1 + (RAND() * 2)),MD5(TIME(NOW())+UUID()+RAND()),NOW()) ;  
    END WHILE;   
    END$$ 
DELIMITER ;

实际使用时,需要修改以下几行:

  • 第二行:test改成目标表的数据库;
  • 第四行:test@127.0.0.1改成实际的用户名和mysql的IP地址

调用存储过程

use test;  
delete from ly_message;  
call create_data(10000000);  

实际使用时,需要修改以下几行:

  • 第一行:test,改成目标表的数据库;
  • 第三行:10000000,改成测试数据的条数;
    喝杯茶,等待执行完成。

相关文章

此处评论已关闭