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

我正在使用Postgres,并且我有大量需要被插入到数据库中的行,这些行的差别仅在于递增的整数。 原谅可能是一个愚蠢的问题,但我不是一个数据库大师。 是否有可能直接input一个SQL查询,将使用循环编程插入行?

在我想要做的伪代码中的例子:

for i in 1..10000000 LOOP INSERT INTO articles VALUES(i) end loop; 

3 Solutions collect form web for “如何使用SQL for循环将行插入数据库?”

希望我已经明白你需要什么(8.2testing):

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

在SQL Server中,你可以这样做:

 DECLARE @i int SET @i = 1 WHILE @i<1000000 BEGIN INSERT INTO articles VALUES @i SET @i=@i+1 END 

Afaik,你不能直接用SQL写一个循环,你必须创build一个存储过程才能做到这一点。

这样做虽然(但有人可能会使它更干净)

 INSERT INTO articles WITH RECURSIVE i AS ( SELECT 1 x UNION ALL SELECT x + 1 FROM i WHERE x < 10000000 ) SELECT x FROM i; 
  • 如何声明variables并在同一个SQL脚本中使用它? (Oracle SQL)
  • 你如何将空值插入到SQL Server中
  • 查询只从string中获取数字
  • 什么是TEXTIMAGE_ON ?
  • 优化PostgreSQL进行快速testing
  • 在存储过程中使用“SET XACT_ABORT ON”有什么好处?
  • 使用PostgreSQL在数据库之间传输数据
  • 如何获取受存储过程影响的logging数?
  • linq案例陈述
  • 可以使用postgres执行跨数据库查询?
  • 如何在SQL Server Management Studio中将列值设置为NULL?