2011-10-07 43 views
1

我需要一個sql語句,在一個數據庫表中插入一個新行,並根據一些條件更新另一個數據庫表中的現有行。需要一個sql語句來做upate並同時插入

有沒有辦法做到這一點?在一個表中插入一行並在一個sql語句中更新另一個數據庫表中的行?

在此先感謝!

+0

你使用什麼數據庫系統? –

回答

4

是的,他們被稱爲Transactions,並實現與START TRANSACTION and COMMIT/ROLLBACK的東西,如:

START TRANSACTION; 
    INSERT INTO ... 
    UPDATE table2 SET name='TOTO' WHERE type=1; 
COMMIT; 

編輯

這其實也不是一個 SQL查詢,但操作完成原子 - 我認爲這是你需要的。

1

您可以使用Trigger上第一臺插入

3

一個SQL語句,可以更新一個表更新第二個表,沒有幾個;如果該語句是MERGE,那麼您可以指定插入/更新/刪除操作,但仍然只針對同一個目標表。

如果您只是想要一致性,請使用事務;直到一個交易被提交,它內部的改變對外界來說是不可見的。

如果您希望單個更新(無法控制)導致協調插入,請在正在更新的表中使用on update觸發器。觸發器會將適當的行插入到其他表中。