如何使用SQL for循环将行插入数据库?

Wil*_*nes 43 sql postgresql

我正在使用Postgres,并且我需要将大量行插入到数据库中,这些行仅在递增的整数方面有所不同.原谅可能是一个愚蠢的问题,但我不是一个数据库大师. 是否可以直接输入将使用循环以编程方式插入行的SQL查询?

我正在尝试做的伪代码示例:

for i in 1..10000000 LOOP
  INSERT INTO articles VALUES(i)
end loop;
Run Code Online (Sandbox Code Playgroud)

Mil*_*dev 68

希望我已经理解你需要的东西(在8.2上测试):

INSERT INTO articles (id, name)
SELECT x.id, 'article #' || x.id
  FROM generate_series(1,10000000) AS x(id);
Run Code Online (Sandbox Code Playgroud)


JNK*_*JNK 14

在SQL Server中,您可以:

DECLARE @i int
SET @i = 1

WHILE @i<1000000
    BEGIN
        INSERT INTO articles
        VALUES @i
        SET @i=@i+1
    END
Run Code Online (Sandbox Code Playgroud)

  • 像 OMGPonies 这样的人可以告诉我们这是否适用于 postgre (2认同)