首页 > 解决方案 > 在 postgresql 中向表中插入多行

问题描述

在使用 SQL Server 时,我在一张表中添加了一千行,我使用了类似的东西:

DECLARE @cnt2 INT = 0;
WHILE @cnt2 < 1000
BEGIN
    insert into [MyDB].[dbo].[Table] (ID, LastName, FirstName, StreetAddress, City, ZipCode, PhoneNumber, Email, EnteringDate, GroupID)
    values (00+ Convert(varchar(5), @cnt2), 'StudentLastName-' + Convert(varchar(5), @cnt2), 'FirstName', 'Street',  'City', 'xx-xxx', '500-000-000', 'email@student.xyz', GETDATE(), 0, 1)
    SET @cnt2 = @cnt2 + 1;
END;

它工作正常,但在使用 PostgreSQL 期间我必须有类似的代码来插入值(我正在使用 pgadmin)。

你能帮我解决这个问题吗?

谢谢!:)

标签: databasepostgresqlpgadmin

解决方案


在 Postgres 中,generate_series()这种任务很方便,因为它避免了循环的需要。

考虑:

insert into mytable (
    ID, 
    LastName, 
    FirstName, 
    StreetAddress, 
    City, 
    ZipCode, 
    PhoneNumber, 
    Email, 
    EnteringDate, 
    GroupID
)
select 
    n, 
    'StudentLastName-' || n::text,
    'FirstName', 
    'Street',  
    'City', 
    'xx-xxx', 
    '500-000-000', 
    'email@student.xyz', 
    now(), 
    0, 
    1
from generate_series(0, 999) as t(n)

推荐阅读