mysql迴圈插入語句 MySQL實現迴圈插入功能

2021-10-17 16:46:22 字數 2045 閱讀 7348

mysql 不支援直接寫sql 語句實現迴圈插入功能. 想要實現該功能的方法有:用其他語言操控mysql或者用儲存過程來實現兩種。

mysql 不支援直接寫sql 語句實現迴圈插入功能. 想要實現該功能的方法有:用其他語言操控mysql或者用儲存過程來實現兩種。

1、儲存過程實現

a、表結構 (create table song)

create table `song` (

`id` int(11) not null auto_increment comment 'autoincreament element',

`name` text not null,

`datetime` timestamp not null default current_timestamp on update current_timestamp,

`rank` int(11) not null,

primary key (`id`)

) engine=myisam auto_increment=8102001 default charset=gbk

b、定義儲存過程

delimiter $$

drop procedure if exists `test`.`sp_insert_batch`$$

create definer=`root`@`localhost` procedure `sp_insert_batch`(in number int(11))

begin

declare i int(11);

set i = 1;

-- such as 1-2000,2000-4000,....

while i <= number do

if mod(i,2000)=1 then

set @sqltext =concat('(''',concat('t',i),''',''',now(),''',',ceil(10*rand()),')');

elseif mod(i,2000)=0 then

set @sqltext=concat(@sqltext,',(''',concat('t',i),''',''',now(),''',',ceil(10*rand()),')');

set @sqltext=concat('insert into song (name,datetime,rank) values',@sqltext);

prepare stmt from @sqltext;

execute stmt;

deallocate prepare stmt;

set @sqltext='';

else

set @sqltext=concat(@sqltext,',(''',concat('t',i),''',''',now(),''',',ceil(10*rand()),')');

end if;

set i = i + 1;

end while;

-- process when number is not be moded by 2000

-- such as 2001,4002,15200,...

if @sqltext<>'' then

set @sqltext=concat('insert into song (name,datetime,rank) values',@sqltext);

prepare stmt from @sqltext;

execute stmt;

deallocate prepare stmt;

set @sqltext='';

end if;

end$$

delimiter ;

c、呼叫儲存過程

call sp_insert_batch (100); --引數為需要插入的行數

2、用其他語言操控mysql實現(以shell為例)

for ((i=1;i<=1000;i++));

do `mysql test -e "insert into t1(idx,pw) value($i,md5($i));"`;

done

Mysql插入語句

方式一語法 insert into 表名 列名,values 值1,值要與列名對應1.插入的值型別要與列的型別一致或相容 insert into beauty id,name,borndate,phone,photo,boyfriend id values 13,肥清 女 1990 4 23 111...

mysql 插入語句

mysql 插入語句 什麼時候用單引號,什麼時候不用?1 先建立乙個表 create table user username varchar 255 age int,marry boolean,birthday date 注意,最後乙個括號前面不能有逗號,否則出錯 2 插入語句 insert int...

四 插入語句

向表中新增乙個新記錄,你要使用sql insert 語句。這裡有乙個如何使用這種語句的例子 insert mytable mycolumn values some data 這個語句把字串 some data 插入表mytable的mycolumn欄位中。將要被插入資料的字段的名字在第乙個括號中指定...