我有兩個表具有以下的列:從一個表中刪除並更新另一個
SUMMARY(sum_id, sum_number) and DETAILS(det_id, det_number, sum_id)
我想det_id在ID列表,它可以這樣做,以刪除表DETAILS
行:
DELETE FROM details WHERE det_id in (1,2,3...)
但
同時我需要的,如果0更新表
UPDATE summary SET sum_number-=somefunction(details.det_number) WHERE summary.sum_id=details.sum_id
更多了,以後這將是完全很大,從
SUMMARY
表中刪除行如果sum_number<=0
如何做到這一切的一種智能的方式?
如果我知道,從一開始,這兩個標識:details.det_id
(刪除)和summary.sum_id
對應於details.det_id
你正在使用什麼SQL引擎/方言 - MySQL,MS SQL,PostgreSQL?它支持事務,觸發器,存儲過程等嗎? – Artemix
我寧願避免像觸發器或存儲過程那樣違法 – Stan
由於您不想使用任何SQL擴展,因此最好的方法是逐步執行這三個操作。在這種情況下,最聰明的方式是在一次交易中執行它們。 – Artemix