MySQL利用存储过程插入数据

有时本地需要调试,而又因数据小而得不到效果,一条条insert又太麻烦,故而利用存储过程进行数据插入一劳永逸。

首先创建所需的表(根据自己需要自行创建):

DROP TABLE IF EXISTS `m_user`; 
CREATE TABLE `m_user` (  
    `id` bigint(20)  PRIMARY key not null AUTO_INCREMENT,  
    `username` varchar(50) DEFAULT NULL,  
    `email` varchar(30) DEFAULT NULL,  
    `password` varchar(32) DEFAULT NULL,
    `status`  tinyint(1) NULL DEFAULT 0
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

然后创建存储过程方法(方法名为add_user_data, 参数为int条数):

CREATE PROCEDURE add_user_data(IN n int) 
BEGIN
    DECLARE i INT DEFAULT 1;
    WHILE i <= n DO
        INSERT INTO m_user(username, email, password) values(CONCAT('username_', i), CONCAT(i ,'@qq.com'), MD5(i));
        SET i = i + 1;
    END WHILE;
END;

执行:

CALL add_user_data(200000); 

这里插入200000条数据

如果需要修改,或者删除都需要删除这个存储过程,不然会提示已存在:

drop PROCEDURE add_user_data;

搞乱点,可以随便设点随机字符,如何组织自行选择,这只是个不像样的示例。

INSERT INTO test_user(username, email, password) values(CONCAT('user.', UPPER(SUBSTRING(REPLACE(UUID(),'-',''),1,10))), CONCAT(SUBSTRING(MD5(RAND()), 1, 10) ,'@qq.com'), MD5(i));

OVER!

- End -




(1)
MySQL