mysql創(chuàng)建時間字段添加默認(rèn)值方式
mysql創(chuàng)建時間字段添加默認(rèn)值
在創(chuàng)建時間字段的時候
例如:
create_time默認(rèn)值可以設(shè)置為CURRENT_TIMESTAMP 插入數(shù)據(jù)時候會自動添加時間,默認(rèn)值為當(dāng)前時間update_time默認(rèn)值可以設(shè)置為CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 表示每次更新這條數(shù)據(jù)的時候,該字段都會更新成當(dāng)前時間
設(shè)置默認(rèn)值錯誤,可以用下面sql修改字段默認(rèn)值
ALTER TABLE `sms_message_system` MODIFY COLUMN `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間' ;
這兩個操作是mysql數(shù)據(jù)庫本身在維護(hù),所以可以根據(jù)這個特性來生成【創(chuàng)建時間】和【更新時間】兩個字段,且不需要代碼來維護(hù).
CREATE TABLE `sms_message_system` ( ? `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '編號', ? `message_title` varchar(255) DEFAULT '' COMMENT '標(biāo)題', ? `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間', ? `release_staff` varchar(255) DEFAULT NULL COMMENT '發(fā)布人員', ? `details` varchar(255) DEFAULT NULL COMMENT '消息詳情', ? `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間', ? PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
mysql對表的創(chuàng)建,creat_time字段設(shè)置默認(rèn)值,update_time字段更新操作設(shè)置為當(dāng)前時間
目前在設(shè)計表的時候,一般會對表添加兩個公共字段,create_time,upate_time。
create_time在新增數(shù)據(jù)的時候需要有當(dāng)前時間upate_time在新增數(shù)據(jù)的時候使用當(dāng)前時間,在這行數(shù)據(jù)被跟新的時候設(shè)置成更新的當(dāng)前時間。
上面的處理邏輯,可以在程序中寫代碼處理,也可以在數(shù)據(jù)庫層處理。
create_time,update_time數(shù)據(jù)庫建表語句的設(shè)置
以下是數(shù)據(jù)庫層處理的方案
CREATE TABLE `xxx` ( ? `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主鍵', ? `table_id` int(11) DEFAULT NULL COMMENT '表id', ? `column_name` varchar(64) DEFAULT NULL COMMENT '列名字', ? `data_type` varchar(32) DEFAULT NULL COMMENT '列類型', ? `data_length` int(11) DEFAULT NULL COMMENT '列長度', ? `column_comment` varchar(255) DEFAULT NULL COMMENT '列備注', ? `column_order` int(11) DEFAULT NULL COMMENT '列排序', ? `custom_comment` varchar(255) DEFAULT NULL COMMENT '自定義備注', ? `del_flag` int(11) DEFAULT NULL COMMENT '是否刪除:0未刪除,1刪除', ? `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間', ? `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間', ? PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
對create_time字段和update_time字段的語法邏輯解說
主要看create_time字段和update_time字段。
DEFAULT CURRENT_TIMESTAMP表示insert的時候設(shè)置默認(rèn)值ON UPDATE CURRENT_TIMESTAMP表示一條數(shù)據(jù)更新的時候,本條數(shù)據(jù)的該字段設(shè)置為當(dāng)前時間
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
阿里云centos7安裝mysql8.0.22的詳細(xì)教程
這篇文章主要介紹了阿里云centos7安裝mysql8.0.22的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
解決Windows10下mysql5.5數(shù)據(jù)庫命令行中文亂碼問題
重置系統(tǒng)后,很久之前安裝的MySQL數(shù)據(jù)庫出現(xiàn)了控制臺查詢中文亂碼問題,時間太久早已經(jīng)不記得怎么設(shè)置了。下面通過本文給大家分享Windows10下解決MySQL5.5數(shù)據(jù)庫命令行中文亂碼問題,一起看看吧2017-07-07
mysql 8.0 找不到my.ini配置文件以及報sql_mode=only_full_group
MySQL5.7.5及以上版本啟用ONLY_FULL_GROUP_BYSQL模式可能導(dǎo)致的問題,本文就來介紹一下找不到my.ini配置文件的解決方法,感興趣的可以了解一下2024-08-08
關(guān)于MySQL將表中數(shù)據(jù)刪除后多久空間會被釋放出來
MySQL刪除數(shù)據(jù)后,空間不會立即釋放給操作系統(tǒng),而是會被標(biāo)記為“可重用”,以供未來插入新數(shù)據(jù)時使用,只有滿足特定條件時,空間才可能真正返還給操作系統(tǒng),本文給大家介紹MySQL中將表中數(shù)據(jù)進(jìn)行刪除后多久空間會被釋放出來,感興趣的朋友一起看看吧2025-11-11

