如何创建一个值范围,然后使用它们将数据插入到PostgreSQL数据库中

Hap*_*ays 2 postgresql

背景资料:

我需要在表中自动生成一堆记录。我仅有的一条信息是开始范围和结束范围。假设我的表格如下所示:

     id 
     widgetnumber
Run Code Online (Sandbox Code Playgroud)

该逻辑需要包含在.sql文件中。
我正在运行PostgreSQL

这是我到目前为止的...作为测试...似乎正在工作:

DO $$
DECLARE widgetnum text;
BEGIN
    SELECT 5 INTO widgetnum;

    INSERT INTO widgets VALUES(DEFAULT, widgetnum);
END $$;
Run Code Online (Sandbox Code Playgroud)

然后运行它,我从数据库服务器上的命令行执行此操作:

testbox:/tmp# psql -U myuser -d widgets -f addwidgets.sql 
DO
Run Code Online (Sandbox Code Playgroud)

问题

  1. 我将如何修改此代码以遍历一系列小部件编号并将其全部插入?例如,将为我提供一个开始范围和一个结束范围(比如说100到150)

  2. 您能指出我一个很好的在线资源来学习我应该使用的语法吗?

谢谢。

a_h*_*ame 6

我将如何修改此代码以遍历一系列小部件编号并将其全部插入?

您可以为此使用generate_series()

insert into widgets (widgetnumber)
select i
from generate_series(100, 150) as t(i);
Run Code Online (Sandbox Code Playgroud)

您能指出我一个很好的在线资源来学习我应该使用的语法吗?

https://www.postgresql.org/docs/current/static/index.html