sql存储过程以插入多个行

问题描述 投票:0回答:2

我有一个表,您可以在其中请求许多设备

Request

 ID     noOfdevice    requestedby
  1              4            sam     

如何根据requestTable的noOfdevice列如何创建存储过程或设备表以为设备插入5个新行

设备

  ID      requestedby
dev1           sam
dev2           sam
dev3           sam
dev4           sam
sql stored-procedures insert bulkinsert
2个回答
0
投票

您可以使用循环来运行多个插入语句。对于MySQL:https://dev.mysql.com/doc/refman/8.0/en/while.html

这里是一个很短的伪代码示例:

counter INT =1 ;

SELECT noOfdevice
INTO var1
FROM Request table
WHERE requestedby= [NAME];

  WHILE counter <= var1 DO
       insert....
  END WHILE;

确切的语法可能因数据库而异


0
投票

在Postgres中,您不需要存储过程:

insert into device_table(id, requestedby)
select 'dev'||g.id, r.requestedby
from request r
  cross join generate_series(1,r.noofdevice) as g(id);
© www.soinside.com 2019 - 2024. All rights reserved.