我有下表:
CREATE TABLE dummy (
thousand INT(10) UNSIGNED,UNIQUE(thousand)
);
是否有sql语法我可以用来插入每千分之一正整数,从1开始直到100万?我可以在PHP中实现这一点,但我想知道如果不使用存储过程这是否可行.
thousand
1
1001
2001
3001
4001
...
998001
999001
最佳答案
insert into dummy
( thousand )
select
PreQuery.thousand
from
( select
@sqlvar thousand,@sqlvar := @sqlvar + 1000
from
AnyTableWithAtLeast1000Records,( select @sqlvar := 1 ) sqlvars
limit 1000 ) PreQuery
您可以从select语句插入.使用MysqL变量,从1开始.然后,加入系统中可能有1000(或更多)记录的任何表来生成一行.即使没有从这样的表中获得任何实际的列,我们只需要它来记录位置.然后@sqlvar从1开始,并在名为thousand的列中返回.然后,立即为它添加1000以用于“AnyTable …”中的下一条记录