1。我现在需要自动生成一个以0-9数字组成的7位数(从0000000-9999999所有的数,即共1千万个数),然后删除其中所有7个数字都不相同的数字(如0123456,1023456,3456789等),再将剩下的数列举出来.
2.我现在用Access数据库结构如下
号码
0000000
0000001
.......
9999999
但我用for循环语句进行一条一条增加,速度其慢,大概每秒增加20条记录,我算了一下按这样的速度我需要等待至少6昼夜的时间,有没有更好的方法能够解决这一问题?急!有没有好的思路或解决方法?我很急,原以高分相送,需要再加分!
2.我现在用Access数据库结构如下
号码
0000000
0000001
.......
9999999
但我用for循环语句进行一条一条增加,速度其慢,大概每秒增加20条记录,我算了一下按这样的速度我需要等待至少6昼夜的时间,有没有更好的方法能够解决这一问题?急!有没有好的思路或解决方法?我很急,原以高分相送,需要再加分!
如果用循环的话也是很慢的
for i:=0 to 9999999 do
begin
SQL语句进行增加;
end;
大概每秒可增加20多条记录,但共有1千万条记录哪
2.作一个行级触发器,来对主键赋值
3.循环使用insert into table(field2) select field2 from table
一直到满足你的条件为止
for i:=0 to 9999999 do
begin
query1.sql.add('insert into 表名(号码) values('+inttostr(i)+')');
end;
能不能写具体一点,多谢
for i:=0 to 99 do
begin
query1.sql.add('insert into 表名(号码) values('+inttostr(i)+')');
end;
先插入100条记录
然后把100条记录读出来,然后把这把这一百条记录的百位数字改为‘1',然后插入,这样数据库就有1-200的记录了,而同时插入100条记录比依次插肯定要大大节省时间
依次类推,插1000读一千,插1W读一W,可以做一个递归程序,嗯,具体代码下午给你,现在忙
你的想法确实不错,不知有没有问题,采用access数据库行吗?
一百条记录的百位数字改为‘1'的sql语句好像不好写
for i:=1 to 9 do
begin
level:=i*100;
....
SQL.add('insert into biaoming
(select '+level+'+haoma from biaoming where haoma<100)');
adoquery.appendrecord(...);
declare @i int;
set @i=1;
insert into table1(field_other) values(1)
while(@i<=15 )
begin
insert into table1(field_other) select field_other from table1
set @i=@i+1
end;
--field_other 是你自己建立的一个字段,没有用处,可以为空,可以不为空,类型自己定就可以了,我用的是int
然后把@dd变为数值加1后,在转换成varchar,付给新行
就可以了搞定了............................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,