Mysql及Navicat中設(shè)置字段自動(dòng)填充當(dāng)前時(shí)間及修改時(shí)間實(shí)現(xiàn)
?該文章講解了創(chuàng)建時(shí)間及修改時(shí)間如何通過(guò)函數(shù)自動(dòng)填充,并演示了以下幾種方式實(shí)現(xiàn)列自動(dòng)填充創(chuàng)建時(shí)間及修改時(shí)間:
- 創(chuàng)建表時(shí)設(shè)置字段為自動(dòng)更新時(shí)間列。
- 添加新字段為自動(dòng)更新時(shí)間列。
- 更新已有字段為自動(dòng)更新時(shí)間列。
- 通過(guò)navicat設(shè)置字段為自動(dòng)更新時(shí)間列。
函數(shù)講解:
CURRENT_TIMESTAMP表示插入新行時(shí),該列將自動(dòng)設(shè)置為當(dāng)前時(shí)間,create_time設(shè)置了默認(rèn)值為CURRENT_TIMESTAMP后,插入新數(shù)據(jù)就會(huì)在create_time字段中自動(dòng)填充當(dāng)前時(shí)間。
ON UPDATE CURRENT_TIMESTAMP表示數(shù)據(jù)行更新時(shí),該列將自動(dòng)設(shè)置為當(dāng)前時(shí)間,update_time設(shè)置了數(shù)據(jù)更新后就會(huì)在update_time字段中自動(dòng)填充當(dāng)前時(shí)間。
注意:這兩個(gè)函數(shù)都可以傳參數(shù),傳參可以傳0-6的數(shù)字,表示時(shí)間的精度,比如
CURRENT_TIMESTAMP(3)表示精確到毫秒值,在設(shè)置時(shí)函數(shù)與字段的時(shí)間精度要保持一致,否則會(huì)報(bào)錯(cuò):ERROR 1067 (42000): Invalid default value for 'tmt'。
支持的字段類型:
MySQL 5.6.5之后,TIMESTAMP和DATETIME列都支持自動(dòng)更新,且一個(gè)表可設(shè)置多個(gè)自動(dòng)更新列。
MySQL 5.6.5之前,只有TIMESTAMP支持自動(dòng)更新,每個(gè)表只能有一個(gè)自動(dòng)更新的時(shí)間列。
實(shí)現(xiàn)方式:
創(chuàng)建表時(shí)設(shè)置字段為自動(dòng)更新時(shí)間列:
CREATE TABLE table_name (
id INT NOT NULL AUTO_INCREMENT,
data VARCHAR(255) NOT NULL,
create_time datetime DEFAULT CURRENT_TIMESTAMP,
update_time datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;添加新字段為自動(dòng)更新時(shí)間列:
ALTER TABLE `table_name` ADD COLUMN `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間'; ADD COLUMN `update_time ` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間';
更新已有字段為自動(dòng)更新時(shí)間列:
ALTER TABLE `table_name` MODIFY COLUMN `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間'; MODIFY COLUMN `update_time ` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間';
通過(guò)navicat設(shè)置字段為自動(dòng)更新時(shí)間列:
選中列后在默認(rèn)值寫上CURRENT_TIMESTAMP,默認(rèn)值下面的選項(xiàng)意思是當(dāng)前列是否要在數(shù)據(jù)行內(nèi)容更新時(shí)更新當(dāng)前列時(shí)間。

總結(jié):
好處: 無(wú)需依賴業(yè)務(wù)更新時(shí)間,所有的db操作都會(huì)自動(dòng)記錄,便于排查問(wèn)題。
不足: 數(shù)據(jù)庫(kù)服務(wù)器和業(yè)務(wù)服務(wù)器可能存在時(shí)間差,導(dǎo)致業(yè)務(wù)變動(dòng)的時(shí)間與數(shù)據(jù)庫(kù)時(shí)間戳存在差異,給實(shí)際維護(hù)和使用帶來(lái)障礙,只能盡可能的校準(zhǔn)服務(wù)器時(shí)間,但不能絕對(duì)避免該問(wèn)題。?
到此這篇關(guān)于Mysql及Navicat中設(shè)置字段自動(dòng)填充當(dāng)前時(shí)間及修改時(shí)間實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Mysql自動(dòng)填充當(dāng)前時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Navicat?for?MySQL導(dǎo)入csv文件時(shí)出現(xiàn)中文亂碼的問(wèn)題解決
- Navicat中新建MySQL數(shù)據(jù)庫(kù)與新建、修改、刪除數(shù)據(jù)表及刪除數(shù)據(jù)庫(kù)詳細(xì)操作方法
- Mysql+Navicat16長(zhǎng)期免費(fèi)直連數(shù)據(jù)庫(kù)安裝使用超詳細(xì)教程
- Navicat中修改MySQL的編碼格式
- Navicat for Mysql 字段注釋中文亂碼問(wèn)題及解決
- Navicat導(dǎo)入mysql數(shù)據(jù)庫(kù)的圖文教程
- navicat連接mysql修改root密碼最簡(jiǎn)潔方法
- Navicat連接MySQL時(shí)出現(xiàn)的連接失敗問(wèn)題及解決
- 最新Navicat?15?for?MySQL破解+教程?正確破解步驟
- Navicat操作MYSQL的詳細(xì)過(guò)程
相關(guān)文章
MySQL系列之開篇 MySQL關(guān)系型數(shù)據(jù)庫(kù)基礎(chǔ)概念
數(shù)據(jù)庫(kù)是指長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)中的有組織的、可共享的數(shù)據(jù)集合,數(shù)據(jù)具有三大基本特點(diǎn),永久存儲(chǔ),有組織,可共享,是數(shù)據(jù)庫(kù)系統(tǒng)的核心,本文給大家分享MySQL關(guān)系型數(shù)據(jù)庫(kù)基礎(chǔ)概念,需要的朋友參考下吧2021-07-07
簡(jiǎn)單了解mysql存儲(chǔ)字段類型查詢效率
這篇文章主要介紹了簡(jiǎn)單了解mysql存儲(chǔ)字段類型查詢效率,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Mysql?optimize?table?時(shí)報(bào)錯(cuò):Temporary?file?write?fail的解決
這篇文章主要介紹了Mysql?optimize?table?時(shí)報(bào)錯(cuò):Temporary?file?write?fail的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
mysql中binlog_format模式與配置詳細(xì)分析
這篇文章主要介紹了mysql中binlog_format模式與配置的相關(guān)內(nèi)容,詳細(xì)介紹了binlog的三種格式與SBR、 RBR 兩種模式各自的優(yōu)缺點(diǎn),需要的朋友可以參考。2017-10-10
MySQL與PHP的基礎(chǔ)與應(yīng)用專題之創(chuàng)建數(shù)據(jù)庫(kù)表
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,本系列將帶你掌握php與mysql的基礎(chǔ)應(yīng)用,本篇從數(shù)據(jù)庫(kù)的創(chuàng)建開始2022-02-02
深入解析MySQL中的longtext與longblob及應(yīng)用場(chǎng)景
MySQL作為廣泛應(yīng)用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),提供了豐富的數(shù)據(jù)類型以滿足各種數(shù)據(jù)存儲(chǔ)需求,本文將深入探討MySQL中l(wèi)ongtext和longblob的特性、區(qū)別以及在實(shí)際項(xiàng)目中的應(yīng)用場(chǎng)景,感興趣的朋友跟隨小編一起看看吧2024-05-05
一篇文章學(xué)會(huì)SQL中的遞歸用法(Mysql)
這篇文章主要給大家介紹了關(guān)于如何一篇文章學(xué)會(huì)SQL中的遞歸用法,眾所周知目前的mysql版本中并不支持直接的遞歸查詢,但是通過(guò)遞歸到迭代轉(zhuǎn)化的思路,還是可以在一句SQL內(nèi)實(shí)現(xiàn)樹的遞歸查詢的,需要的朋友可以參考下2023-10-10

