ऐसा लगता है कि आप जो चाहते हैं वह एक dummy rowset
है ।
MySQL
. में , बिना टेबल के यह असंभव है।
अधिकांश प्रमुख प्रणालियाँ इसे करने का एक तरीका प्रदान करती हैं:
-
Oracle
. में :SELECT level FROM dual CONNECT BY level <= 10
-
SQL Server
में :WITH q AS ( SELECT 1 AS num UNION ALL SELECT num + 1 FROM q WHERE num < 10 ) SELECT * FROM q
-
PostgreSQL
में :SELECT num FROM generate_series(1, 10) num
MySQL
कुछ इस तरह की कमी है और यह एक गंभीर कमी है।
मैंने अपने ब्लॉग पोस्ट में नमूना तालिकाओं के लिए परीक्षण डेटा उत्पन्न करने के लिए एक सरल स्क्रिप्ट लिखी, शायद यह काम की होगी:
CREATE TABLE filler (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT
) ENGINE=Memory;
CREATE PROCEDURE prc_filler(cnt INT)
BEGIN
DECLARE _cnt INT;
SET _cnt = 1;
WHILE _cnt <= cnt DO
INSERT
INTO filler
SELECT _cnt;
SET _cnt = _cnt + 1;
END WHILE;
END
$$
आप प्रक्रिया को कॉल करते हैं और तालिका संख्याओं से भर जाती है।
आप सत्र की अवधि के दौरान इसका पुन:उपयोग कर सकते हैं।