共計 1075 個字符,預計需要花費 3 分鐘才能閱讀完成。
這篇文章主要介紹了 Mysql 中 update_time 時間字段列的處理和遷移改寫案例,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
現(xiàn)象描述
需求:
1. 當新增記錄的時候,數(shù)據(jù)庫自動將系統(tǒng)的當前時間 set 到創(chuàng)建時間和更新時間這兩個字段中。
2. 當更新記錄的時候,數(shù)據(jù)庫只 update 更新時間字段的時間,而不修改創(chuàng)建時間字段對應的值。
處理方法 Mysql 的處理方法:
需求 1:創(chuàng)建時間字段
`creat_time` timestamp NULL
DEFAULT CURRENT_TIMESTAMP
需求 2:更新時間字段
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
說明:即通過字段的默認值來處理。
Oracle 和 DM 的處理方法:
在 Oracle 或者達夢上,對于需求 1(創(chuàng)建時間字段),處理方式等同;但是對于需求 2(更新時間字段),則需要通過觸發(fā)器處理。即:
需求 1:創(chuàng)建時間字段
CREAT_TIME TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
需求 2:更新時間字段
UPDATE_TIME TIMESTAMP
改字段無法通過默認值,指定屬性。需要為這個列指定觸發(fā)器:
create or replace trigger your_tablename_update_time
before delete or update on your_tablename
referencing OLD AS OLD NEW AS NEW
for each row
BEGIN
/* 觸發(fā)器體 */
IF UPDATING THEN
:new.update_time = CURRENT_TIMESTAMP;
END IF;
exception when others then
null;
END;
/
說明:
1. 實際上在 DM 或 Oracle 這個體系內,這個字段,如果有類似續(xù)期,都是應用里面自己維護的,而且工作量也很小。比如需求 2,也只是 update 的時候,多 update 一個字段而已。
2. 如果原先在 Mysql 上開發(fā),已經(jīng)為了省事,利用了 mysql 的對應特性,遷移到 DM 或 Oracle 這個體系的時候,可以通過觸發(fā)器實現(xiàn),而不再改任何應用邏輯。
感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“Mysql 中 update_time 時間字段列的處理和遷移改寫案例”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業(yè)資訊頻道,更多相關知識等著你來學習!