簡體   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