1から指定された最大値までの連続する各数値の行を含むint(11)列が1つしかないヘルパーテーブルが必要です。これは純粋なSQLで実行できますか?
例:
INSERT INTO `helper`('itnum') VALUES (1),(2),(3),...(999999),(1000000);
このようなステートメントが必要ですが、作成するすべてのエントリを明示的にリストする必要はありません。
1から指定された最大値までの連続する各数値の行を含むint(11)列が1つしかないヘルパーテーブルが必要です。これは純粋なSQLで実行できますか?
例:
INSERT INTO `helper`('itnum') VALUES (1),(2),(3),...(999999),(1000000);
このようなステートメントが必要ですが、作成するすべてのエントリを明示的にリストする必要はありません。
このようなものはどうですか:
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;
これを行うには、SGBDプロシージャのループ内または外部(phpスクリプトなど)で挿入を実行する必要があると思います。