2012-02-10 54 views
0

這看起來像是一個簡單的請求。但我的查詢不起作用,我在互聯網上找到了相互矛盾的答案。是否有可能使用在MySql中連接2個表的存儲過程進行UPDATE和INSERT?在MySql中使用存儲過程更新2個表格

我有一個Asp.net Webforms網站。它有2個表個人和地址。個人表格包含個人數據,例如電話號碼,傳真,電子郵件等。 地址表具有個人的所有地址信息。他們每個表都有一列自動遞增的個人ID。 (注意:地址表中的個人ID不是主鍵,但個別表中的個人ID是主鍵。

無論如何,我在Asp.net中有一個FormView,它具有連接這兩個表的SELECT語句,顯示數據精細,但更新的新信息,這兩個表不停地進行故障

我最近的錯誤是:。重複條目「0」鍵「PRIMARY」

有沒有編寫加入一個UPDATE語句的方式2表格這必須存在嗎?

+0

SQL Update語句只能更新一個表。要做到這一點,你需要更新一個表格,然後更新另一個表格......希望在一個事務中,所以如果第二個表失敗了,你可以回滾第一個表。 – 2012-02-10 16:56:49

回答

1

可以用一個q更新多個表格uery -

UPDATE table1 
INNER JOIN table2 
    ON table1.id = table2.table1_id 
SET table1.col1 = 'some value', table2.col1 = 'Another value' 
WHERE <some where clause>; 
+0

明白我的意思?有人說別人說這是不可能的。 – 2012-02-10 19:14:24

+0

當我添加Set table1.col1 ='somevalue'有一些值是我傳遞的變量名嗎?如Fname?或Lname? – 2012-02-10 19:15:32

+0

:-)這絕對有可能。我甚至在我發佈之前檢查了它。 'somevalue'是要分配給最可能來自變量的列的值。 – nnichols 2012-02-10 19:45:46