mysql儲存過程,生成測試資料

2021-08-13 23:11:14 字數 1507 閱讀 1838

指定要插入資料的表,如 tb_info表

建立記憶體表,可以增加插入效率》create tb_info_memory(..);

delimiter // -- 修改mysql delimiter:'//'

drop procedure

ifexists `add_data` //

create

procedure `add_data`(in n int)

begin

declare

iint

default 1;

while i < n do

-- 這裡想記憶體表插入資料

-- 如:insert into `tb_info_memory`(`book_id`,..)values(...);

set i = i + 1;

endwhile;

end

delimiter ; -- 改回預設的 mysql delimiter:';'

呼叫儲存過程call add_data(1000);這裡生成1000條資料

將資料表插入實際表中

insert

into

`tb_info`

(`book_id`,

..)select * from tb_info_memory;

delimiter //

drop procedure

ifexists

add_data //

create

procedure

add_data

(in n int ,out s longtext)

begin

declare

iint

(6)default 1;

declare v_sql longtext;

set v_sql = concat('insert into `bookdb`.`t`(`id`,`name`)values(',floor(rand()*100),',','''',rand_string(5),'''',')');

while ido

set v_sql = concat(v_sql,',(',floor(rand()*100),',','''',rand_string(5),'''',')');

set i=i+1;

endwhile;

set @s_sql = concat(v_sql);

set s = @s_sql;

prepare stmt from @s_sql;

execute stmt;

deallocate prepare stmt;

enddelimiter ;

--插入並顯示sql

call add_data(30000,@sql_str);

select @sql_str;

Mysql 儲存過程造測試資料

1.mysql 儲存過程造測試資料 建立乙個使用者表 create table sys user id char 32 not null default comment 主鍵 id int 11 not null auto increment comment 主鍵 username varchar ...

mysql儲存過程,作測試資料使用

小弟在此僅作測試用,所以簡單建了個表 1.表結構 create table t user username varchar 50 default null,userpassword varchar 50 default null engine innodb default charset utf8 ...

MySQL通過儲存過程建立測試資料

1.建立儲存過程 2.複製insert語句到儲存過程中 3.替換未隨機變數 4.迴圈 create definer root procedure create users in number int begin 宣告變數 declare uname varchar 20 character set ...