MySQL中創(chuàng)建時(shí)間和更新時(shí)間的自動(dòng)更新的實(shí)現(xiàn)示例
一、需求
當(dāng)新增記錄的時(shí)候,MySQL自動(dòng)將系統(tǒng)的當(dāng)前時(shí)間 set 到創(chuàng)建時(shí)間和更新時(shí)間這兩個(gè)字段中。
當(dāng)更新記錄的時(shí)候,MySQL 只 update 更新時(shí)間字段的時(shí)間,而不修改創(chuàng)建時(shí)間字段對應(yīng)的值。
二、方案
找到表中對應(yīng)的創(chuàng)建時(shí)間和更新時(shí)間的字段,將其修改如下:
- 創(chuàng)建時(shí)間字段
creat_time timestamp NULL DEFAULT CURRENT_TIMESTAMP
- 更新時(shí)間字段
update_time timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
如此便不需要在代碼中對記錄設(shè)置創(chuàng)建時(shí)間和修改時(shí)間了。在 navicat 中的操作:找到相應(yīng)的表—右擊—>點(diǎn)擊“設(shè)計(jì)表”—>如下圖:
插入記錄時(shí)自動(dòng)生成創(chuàng)建時(shí)間:
更新記錄時(shí)自動(dòng)生成修改時(shí)間:
創(chuàng)建時(shí)間(創(chuàng)建日期)、修改時(shí)間(修改日期)設(shè)置為自動(dòng)生成
創(chuàng)建日期的自動(dòng)生成
創(chuàng)建日期的自動(dòng)生成比較好說:
字段默認(rèn)值設(shè)置為 CURRENT_TIMESTAMP ,這樣在新增的時(shí)候,日期會(huì)自動(dòng)生成。
sql語句為:
CREATE TABLE T_USER( CREATE_DATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP , UPDATE_DATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP )
當(dāng)然,數(shù)據(jù)庫設(shè)計(jì)工具也可以直接設(shè)置。
更新日期的自動(dòng)生成
更新日期稍微麻煩一點(diǎn),因?yàn)槟J(rèn)值是新增的時(shí)候才有效,update的時(shí)候不會(huì)觸發(fā)default的邏輯。
這里用觸發(fā)器:
create or replace trigger T_USER_UPDATE_TRIGGER before update on T_USER for each row begin :new.UPDATE_DATE := sysdate; end;
到此這篇關(guān)于MySQL中創(chuàng)建時(shí)間和更新時(shí)間的自動(dòng)更新的文章就介紹到這了,更多相關(guān)MySQL自動(dòng)更新創(chuàng)建時(shí)間和更新時(shí)間內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。