一尘不染

在MySQL中生成一系列数字

mysql

如何从MySQL查询生成一系列连续数字(每行一个),以便可以将它们插入表中?

例如:

nr
1
2
3
4
5

我只想为此使用MySQL(不使用PHP或其他语言)。


阅读 489

收藏
2020-05-17

共1个答案

一尘不染

如果您需要表中的记录,并且希望避免并发问题,请按照以下方法操作。

首先,您创建一个用于存储记录的表

CREATE TABLE `incr` (
  `Id` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`Id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

其次,创建一个存储过程,如下所示:

DELIMITER ;;
CREATE PROCEDURE dowhile()
BEGIN
  DECLARE v1 INT DEFAULT 5;
  WHILE v1 > 0 DO
    INSERT incr VALUES (NULL);
    SET v1 = v1 - 1;
  END WHILE;
END;;
DELIMITER ;

最后调用SP:

CALL dowhile();
SELECT * FROM incr;

结果

Id
1
2
3
4
5
2020-05-17