2012-04-23 77 views
0

我有一個命名爲Table1表如下更新表而不刪除先前添加的數據

ID, JobNo, Date, Comments 

我有一個命名爲與別名從另一個只讀表如下幫助下創建View1查看,

ID, JobNo, StartSeq, EndSeq 

ID是主鍵。我必須將UPDATE表1與來自View1的列IDJobNo的數據進行比較。

比方說View1有2行,我將INSERT這2行寫入Table1。因此,當View1獲得其第三行時,如何更新Table1與第三行的信息,而不刪除以前存儲在表1中的數據。

現在,我有以下查詢,但它似乎不工作,因爲重複的主鍵問題。

INSERT INTO Table1(ID, JobNo) 
SELECT View1.ID, View1.JobNo 
FROM View1 

我是一個新手到SQL所以請幫助我走出這個

回答

0

假設你只想要你已經有表1到INSERT新的數據,而不是實際UPDATE數據,那麼你應該做的:

INSERT INTO Table1(ID, JobNo) 
SELECT View1.ID, View1.JobNo 
FROM View1 
WHERE View1.ID NOT IN (SELECT ID FROM Table1) 
+0

@ user1345260 - 好的,那你的問題是什麼? – Lamak 2012-04-23 12:46:35

+0

工作。但我對此有一個疑問。 假設View1中有兩行,我運行了這個查詢並將兩行插入到Table1中。現在假定第1行已從View1中刪除。所以當我們再次運行這個查詢時,這是否反映在Table1中? – user1345260 2012-04-23 12:46:45

+0

@ user1345260 - 不,這個特定的查詢只在table1上插入數據,沒有別的。如果你想擁有與view1完全相同的數據,你將需要一個更復雜的查詢(儘管爲什麼你需要首先使用table1)。如果你需要更多的幫助,你可以問另一個問題,並告訴我們你使用的是什麼數據庫引擎和版本 – Lamak 2012-04-23 12:52:42

相關問題