我正在尝试编写一个查询来生成 1000 行,我有一个名为 CCHOMEWORK 的表,其中包含 2 列、ID 整数 (PK) 和 StudentID varchar,其中包含所有 1000 行的值。
我试过这个,但我不断收到错误并且不起作用
SET @MyCounter = 1
WHILE @MyCounter < 1000
BEGIN
INSERT INTO CCHOMEWORK
(ID)
VALUES
@MyCounter)
set @MyCounter = @MyCounter + 1;
END
Run Code Online (Sandbox Code Playgroud)
这将创建 1000 行:
SELECT LEVEL
FROM DUAL
CONNECT BY LEVEL <= 1000
Run Code Online (Sandbox Code Playgroud)
您可以将它包含在您的插入中:
INSERT INTO CCHOMEWORK (ID)
SELECT LEVEL
FROM DUAL
CONNECT BY LEVEL <= 1000
Run Code Online (Sandbox Code Playgroud)
但是,如果要插入多个连续 ID,最好使用序列:
CREATE SEQUENCE CCHOMEWORK__ID__SEQ
/
Run Code Online (Sandbox Code Playgroud)
然后:
INSERT INTO CCHOMEWORK (ID)
SELECT CC_HOMEWORK__ID__SEQ.NEXTVAL
FROM DUAL
CONNECT BY LEVEL <= 1000;
Run Code Online (Sandbox Code Playgroud)
或者:
BEGIN
FOR i IN 1 .. 1000 LOOP
INSERT INTO CCHOMEWORK (ID) VALUES ( CC_HOMEWORK__ID__SEQ.NEXTVAL );
END LOOP;
END;
/
Run Code Online (Sandbox Code Playgroud)