簡體   English   中英

如何創建具有連續數字的表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM