如何从MySQL查询生成一系列连续数字(每行一个),以便可以将它们插入表中?
例如:
nr 1 2 3 4 5
我只想为此使用MySQL(不使用PHP或其他语言)。
如果您需要表中的记录,并且希望避免并发问题,请按照以下方法操作。
首先,您创建一个用于存储记录的表
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