MYSQL ON UPDATE CURRENT_TIMESTAMP當(dāng)字段值發(fā)生改變時(shí)才會(huì)更新記錄的時(shí)間
疑惑
今天看到一個(gè)博客說:時(shí)間戳有ON UPDATE CURRENT_TIMESTAMP屬性,無論值有沒有改變時(shí)間都會(huì)更新 (下面是別人博客的截圖)

表示疑惑,于是動(dòng)手建表寫字段驗(yàn)證了一波。
驗(yàn)證
1. 建表:
設(shè)置upd_time的類型為timestamp時(shí)間戳類型,并設(shè)置默認(rèn)值為DEFAULT CURRENT_TIMESTAMP,且設(shè)置ON UPDATE CURRENT_TIMESTAMP,記錄發(fā)生變化時(shí)也要更新該時(shí)間戳。
CREATE TABLE `t_temp` ( `id` int(11) NOT NULL DEFAULT '0', `username` varchar(255) DEFAULT NULL, `upd_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '默認(rèn)取當(dāng)前時(shí)間', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
不想寫建表的sql的話,也可以用Navicat幫你建表,如圖,注意細(xì)節(jié):

2. 表建好了,隨便加條記錄,如圖:
PS:留意一下這條記錄的id 和 upd_time字段的值,待會(huì)我要更新這條記錄,注意看它們的變化

3. 更新這條id=1的記錄,設(shè)置username=‘mm’。
即,我雖然對(duì)這條記錄update了一波,但是并沒有改變?nèi)魏卫锩嫒魏我粋€(gè)字段的值

4. 最后,我們刷新一下數(shù)據(jù)表,看看時(shí)間戳有沒有發(fā)生變化:
可以看到時(shí)間戳并未改變

結(jié)論
設(shè)置字段屬性為時(shí)間戳類型,且把默認(rèn)值設(shè)置成CURRENT_TIMESTAMP的情況下。如果你設(shè)置了時(shí)間隨當(dāng)前時(shí)間戳更新( ON UPDATE CURRENT_TIMESTAMP),那么當(dāng)你更新字段時(shí),只有字段值發(fā)生變化了,你的時(shí)間字段才會(huì)變?yōu)閁PDATE操作時(shí)的時(shí)間
補(bǔ)充說明
如果只對(duì)字段設(shè)置默認(rèn)值取CURRENT_TIMESTAMP,而沒有設(shè)置隨當(dāng)前時(shí)間戳更新的話(就是建表時(shí)不勾選下圖中的玩意兒),只有記錄創(chuàng)建時(shí)會(huì)有時(shí)間戳,此后對(duì)記錄的更新操作都不會(huì)再改變?cè)撚涗浀臅r(shí)間字段了

到此這篇關(guān)于MYSQL ON UPDATE CURRENT_TIMESTAMP當(dāng)字段值發(fā)生改變時(shí)才會(huì)更新記錄的時(shí)間的文章就介紹到這了,更多相關(guān)MYSQL ON UPDATE CURRENT_TIMESTAMP內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用于App服務(wù)端的MySQL連接池(支持高并發(fā))
這篇文章主要介紹了用于App服務(wù)端的MySQL連接池,并支持高并發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-12-12
mysql查詢條件not in 和 in的區(qū)別及原因說明
這篇文章主要介紹了mysql查詢條件not in 和 in的區(qū)別及原因說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01
MySQL海量數(shù)據(jù)(2億級(jí)表字段)無損更新方案
在大型互聯(lián)網(wǎng)應(yīng)用中,數(shù)據(jù)表動(dòng)輒達(dá)到億級(jí)規(guī)模,當(dāng)需要對(duì)生產(chǎn)環(huán)境中的海量表進(jìn)行字段更新時(shí),如何在不影響業(yè)務(wù)正常讀寫的情況下完成任務(wù),是每個(gè)DBA和開發(fā)者都會(huì)面臨的挑戰(zhàn),本文將以一個(gè)真實(shí)案例詳細(xì)講解四種漸進(jìn)式更新方案及其實(shí)現(xiàn)原理,需要的朋友可以參考下2025-04-04
MySQL中find_in_set()函數(shù)用法示例詳解
find_in_set這個(gè)是mysql的一個(gè)函數(shù),見得比較少,下面這篇文章主要給大家介紹了關(guān)于MySQL中find_in_set()函數(shù)用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
MySQL敏感數(shù)據(jù)加密的實(shí)現(xiàn)方案
這篇文章主要介紹了MySQL敏感數(shù)據(jù)加密的實(shí)現(xiàn)方案,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2024-02-02

