2014-03-29 112 views
1

我有幾張表,我想執行版本控制,並有一個有效的和有效的日期。每當應用程序或用戶將UPDATE寫入此表時,我都希望它重定向到兩個全新的命令:更新目標記錄,以便EFFECTIVE_TO日期填充當前日期和時間,並用更新的屬性插入全新記錄。MySQL觸發器:將UPDATE轉換爲UPDATE和INSERT?

這可能與觸發器有關嗎?還是我必須繼續使用Java應用程序控制外部?

+0

要更新和插入到相同的表?它會不會重複記錄? – Rahul

+0

是的。但是插入的記錄將是具有新值的當前記錄並且是12-31-2099的有效記錄。舊記錄將更新爲當前有效停止記錄的日期。這是爲了跟蹤變化並查看歷史。 – tmn

+0

是的,你可以使用觸發器,但我會建議維護兩個單獨的表格(當前/歷史)。 – Rahul

回答

0

像這樣的東西可能

delimiter | 

CREATE TRIGGER versioningcontrol AFTER UPDATE ON yourtable 
    FOR EACH ROW 
    BEGIN 
    INSERT INTO yourtable(col1,col2,...) values(...); 
    END; 
| 

delimiter ;