2012-04-25 3 views
0

하나의 int (11) 열만있는 도우미 테이블이 필요합니다.이 도우미 테이블에는 1부터 최대까지의 연속 번호에 대한 행이 있습니다. 순수한 SQL로이를 수행 할 수 있습니까?연속 번호를 사용하여 테이블을 만드는 방법

예 :

INSERT INTO `helper`('itnum') VALUES (1),(2),(3),...(999999),(1000000); 

는이 같은 성명이 필요하지만, 명시 적으로 모든 항목을 나열하지 않고 할 수 있습니다.

답변

1

이런 일에 대한 방법 :

SELECT insert_helper_records(999999) FROM DUAL; 
+0

는'SELECT insert_helper_records (999999) DUAL'부터 'CALL의 insert_helper_records의 장점이 무엇입니까 (:

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 ; 

그런 다음 그러나 당신이 좋아 원하는 호출 999999)'? – AndreKR

+0

다른 것에 대한 실질적인 이점이 없으며 단지 선호도가 있습니다. – davidethell

1

나는 이것을 할 것으로 생각한다. SGBD 프로 시저의 루프 또는 PHP 스크립트 외부에서 삽입을 실행해야한다.

관련 문제