[英]How to create a table with consecutive numbers
我需要一個只有一個int(11)列的幫助器表,它包含從1到給定最大值的每個連續數字的行。 這可以用純SQL完成嗎?
例:
INSERT INTO `helper`('itnum') VALUES (1),(2),(3),...(999999),(1000000);
我需要這樣的聲明,但沒有明確列出要制作的所有條目。
我認為要做到這一點,你必須在你的SGBD程序或外部(php腳本,...)循環中執行插入。
這樣的事情怎么樣:
DELIMITER |
DROP PROCEDURE IF EXISTS insert_helper_records |
CREATE PROCEDURE insert_helper_records(a_max INTEGER)
BEGIN
DECLARE v_iteration INTEGER;
SET v_iteration := 1;
insert_loop: LOOP
INSERT INTO helper(itnum) VALUES (v_iteration);
SET v_iteration := v_iteration + 1;
IF v_iteration = a_max THEN
LEAVE insert_loop;
END IF;
END LOOP;
END |
DELIMITER ;
然后按照你想要的方式調用它:
SELECT insert_helper_records(999999) FROM DUAL;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.