2012-03-07 51 views
1

好吧,讓我們說我有一個名爲「COMPANY_PARAMETERS」表看起來是這樣的(前兩列鍵)的數據庫:插入多行成一個公司 - 參數 - 值表

COMP_ID | PARAM_NAME | PARAM_VALUE 
    A | parameter 1| 10 
    A | sample_ind | Y 
    B | parameter 1| 20 
    B | sample_ind | N 

我想插入一個新參數,讓我們說參數2到表中,爲表中的每個公司Id。我不知道哪個公司ID會期望,因爲任何客戶都可以擁有他們想要的任何公司ID,所以一個客戶可能有公司ID 1,2,3,4,另一個可能有A,B,C,D等。在我們更新數據庫時,使用我們存儲在存儲庫上的一系列更新腳本。我問過,這是每個客戶都很少見的罕見(唯一)表格,但我仍想嘗試。

我一直在使用數據庫不到一年,我真的不知道從哪裏開始這樣的問題。我的猜測是使用select語句來查找所有唯一的comp_Ids,然後爲它們中的每一個插入一行。

你的幫助是非常讚賞。

-Asaf

回答

1
INSERT INTO COMPANY_PARAMETERS 
    (COMP_ID, PARAM_NAME) 
    SELECT DISTINCT cp.COMP_ID, 'parameter 2' 
     FROM COMPANY_PARAMETERS cp; 

如果你想成爲額外小心,你可以擴展查詢,以確保新的參數已經不存在。

INSERT INTO COMPANY_PARAMETERS 
    (COMP_ID, PARAM_NAME) 
    SELECT DISTINCT cp.COMP_ID, 'parameter 2' 
     FROM COMPANY_PARAMETERS cp 
     WHERE NOT EXISTS(SELECT 1 
          FROM COMPANY_PARAMETERS cp2 
          WHERE cp2.COMP_ID = cp.COMP_ID 
           AND cp2.PARAM_NAME = 'parameter 2'); 
+0

非常感謝你好,先生。 – Asaf 2012-03-08 14:00:32