繁体   English   中英

计算后将数据从一个表插入到另一表的过程

[英]Procedure to insert a data from one table to another table after calculations

我有两个表-1.用户2.小部件“用户”表中有数千个用户。 我创建了一个名为“ widgets”的新表。 现在,每个用户都有5个不同的小部件,我需要在“小部件”表中为“用户”表中的每个条目插入5个条目。 这是详细的场景-

“用户”表的列-“ id”

“小工具”表具有以下列:“ user_id”,“ widgetId”,“ align”,“ priority”

对于每个user.id,我想像这样在“ widgets”表中插入5条记录-

用户表中的第一个ID 1,1,1

用户表中的第一个ID 2,2,2

用户表中的第一个ID 3、3、3

用户表中的第一个ID 4,4,4

用户表中的第一个ID 5,5,5

用户表中的第二个ID 1,1、1

用户表中的第二个ID 2,2,2

用户表中的第二个ID,3、3、3

用户表中的第二个ID 4,4,4

用户表中的第二个ID 5,5,5 .................................................

我想创建一个执行相同操作的过程。 请有人建议我该怎么做。

我建议使用单独的表作为默认值。 这样,不仅可以随着业务需求和产品的增长轻松调整默认值,还可以使用可用于其他目的的模板。

create table DefaultWidgets (widgetid INT, align INT, priority INT);
insert into DefaultWidgets values (1,1,1);
insert into DefaultWidgets values (2,2,2);
insert into DefaultWidgets values (3,3,3);
insert into DefaultWidgets values (4,4,4);
insert into DefaultWidgets values (5,5,5);

insert into widgets values (1,1,100,100);
-- mainly to demonstrate that a new row won't be inserted for user 1, widget 1.

INSERT INTO widgets
  SELECT id, r.widgetid, r.align, r.priority
  FROM users u
    CROSS JOIN DefaultWidgets R
  WHERE NOT EXISTS (
      SELECT 1
      FROM widgets w
      WHERE userid = u.id
        AND w.widgetid=R.widgetid
      );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM