Mysql

觸發以將已刪除的行複製到另一個相同的表,其中 Cascade Delete On

  • August 1, 2018

我有兩張桌子。銷售和銷售產品

SaleProducts 包含所有具有銷售的產品。

1 銷售,許多產品。(1對多)

SaleProducts``Sale與 On Delete 設置為有關係CASCADE

當我刪除銷售時,它會刪除(由於刪除級聯)所有SaleProductsSale.

我可以定義一個 TRIGGER ON DELETE,在刪除之前將所有行複製到相同的 Sale 和 SaleProducts 表中以保存歷史記錄嗎?

在主(Sale)表上定義觸發器BEFORE DELETE,它將從(SaleProducts)表中的所有記錄複製到存檔表中,這些記錄可能被級聯操作刪除。

定義AFTER DELETE觸發器,它將複製從主表中刪除的記錄。

如果兩個檔案中都有記錄 - 已執行刪除。兩個歸檔表中的所有記錄都是有效的。

如果 SaleProducts 存檔中有記錄,而 Sale 存檔中沒有相應的記錄 - 由於某些錯誤未執行刪除操作,必須從 SaleProducts 存檔表中刪除這些記錄。

引用自:https://dba.stackexchange.com/questions/213773