用MYSQL的存储过程创建百万级测试数据表
生活随笔
收集整理的這篇文章主要介紹了
用MYSQL的存储过程创建百万级测试数据表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
創建隨機字符串函數,便于創建名稱
創建隨機編號生成函數
drop function if exists rand_num; CREATE function rand_num() returns int(5) BEGINDECLARE i int default 0;set i = FLOOR(10+RAND()*500);return i; END創建數據表 -- 部門表 dept
drop table if EXISTS dept; create table dept (deptno MEDIUMINT UNSIGNED not null DEFAULT 0,dname varchar(20) default '',ioc varchar(13) default'' ) ENGINE = myisam default CHARSET ='utf8'; ALTER table dept add PRIMARY key(deptno);創建數據表 -- 員工表 emp
drop table if EXISTS emp; CREATE TABLE `emp` (`empno` mediumint(8) unsigned NOT NULL DEFAULT '0',`ename` varchar(20) NOT NULL DEFAULT '',`job` varchar(9) NOT NULL DEFAULT '',`mgr` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '上級編號',`hiredate` date NOT NULL COMMENT '入職日期',`salary` decimal(7,2) NOT NULL COMMENT '薪水',`comm` decimal(7,2) NOT NULL COMMENT '紅利',`deptno` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '部門編號' ) ENGINE=MYISAM DEFAULT CHARSET=utf8;創建插入測試數據的存儲過程
drop PROCEDURE IF EXISTS insert_emp ;CREATE PROCEDURE insert_emp (in start_no int(10),in max_num int(10))BEGINDECLARE i int default 0;# 設置自動提交為falseset autocommit =0;# 開啟循環REPEATset i = i+1;insert into emp values((start_no+i),rand_string(6),'SALESMAN',0001,CURDATE(),rand_num(),400,0002);UNTIL i=max_numEND REPEAT; END調用存儲過程,生成百萬數據
call insert_emp(10000,10000000);轉載于:https://www.cnblogs.com/peterpoker/p/9758103.html
總結
以上是生活随笔為你收集整理的用MYSQL的存储过程创建百万级测试数据表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS中的单位
- 下一篇: 【BZOJ】3456: 城市规划(多项式