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欄位中。將要被插入資料的字段的名字在第乙個括號中指定...