1
我有幾張表,我想執行版本控制,並有一個有效的和有效的日期。每當應用程序或用戶將UPDATE寫入此表時,我都希望它重定向到兩個全新的命令:更新目標記錄,以便EFFECTIVE_TO日期填充當前日期和時間,並用更新的屬性插入全新記錄。MySQL觸發器:將UPDATE轉換爲UPDATE和INSERT?
這可能與觸發器有關嗎?還是我必須繼續使用Java應用程序控制外部?
我有幾張表,我想執行版本控制,並有一個有效的和有效的日期。每當應用程序或用戶將UPDATE寫入此表時,我都希望它重定向到兩個全新的命令:更新目標記錄,以便EFFECTIVE_TO日期填充當前日期和時間,並用更新的屬性插入全新記錄。MySQL觸發器:將UPDATE轉換爲UPDATE和INSERT?
這可能與觸發器有關嗎?還是我必須繼續使用Java應用程序控制外部?
像這樣的東西可能
delimiter |
CREATE TRIGGER versioningcontrol AFTER UPDATE ON yourtable
FOR EACH ROW
BEGIN
INSERT INTO yourtable(col1,col2,...) values(...);
END;
|
delimiter ;
要更新和插入到相同的表?它會不會重複記錄? – Rahul
是的。但是插入的記錄將是具有新值的當前記錄並且是12-31-2099的有效記錄。舊記錄將更新爲當前有效停止記錄的日期。這是爲了跟蹤變化並查看歷史。 – tmn
是的,你可以使用觸發器,但我會建議維護兩個單獨的表格(當前/歷史)。 – Rahul