我有下表:

CREATE TABLE dummy (
  thousand INT(10) UNSIGNED,
  UNIQUE(thousand)
);

我是否可以使用sql语法插入从1到1百万为止的每千个正整数?我可以用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开始。然后,连接到系统中的ANY表,该表可能有1000条(或更多)记录,仅用于生成一行。即使没有从这样的表中获取任何实际的列,我们也只需要它作为记录位置。然后@sqlvar从1开始,并在名为000的列中返回。然后,立即将其添加为1000,以获取“AnyTable ...”中的下一条记录

关于mysql - SQL语法插入从1到1百万为止的每千个正整数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13557893/

10-11 12:45