mysql中時(shí)間字段設(shè)置遇到的問(wèn)題
mysql中時(shí)間字段設(shè)置問(wèn)題
案例【一】
今天寫(xiě)數(shù)據(jù)庫(kù)腳本,創(chuàng)建數(shù)據(jù)庫(kù)時(shí),有一個(gè)字段是datetime類型的,想要設(shè)置默認(rèn)時(shí)間為當(dāng)前時(shí)間,
于是有了如下代碼:
registerDate datetime NOT NULL DEFAULT NOW() COMMENT '注冊(cè)時(shí)間'
執(zhí)行之后報(bào)錯(cuò)
Error Code: 1067. Invalid default value for 'registerDate'
PS:在mysql 5.6中,這種寫(xiě)法OK,之前的版本不支持這樣的寫(xiě)法。
案例【二】
mysql一般在設(shè)置時(shí)間的時(shí)候也常用時(shí)間戳。timestamp類型
在執(zhí)行mysql數(shù)據(jù)庫(kù)時(shí)報(bào)錯(cuò)
CREATE TABLE `advert_schedule_time` ( `advert_id` int(11) NOT NULL DEFAULT '0' COMMENT '廣告id', `stime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '開(kāi)始時(shí)間', `etime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '結(jié)束時(shí)間', `times` int(11) NOT NULL DEFAULT '0' COMMENT '投放次數(shù)', UNIQUE KEY `adverttime` (`advert_id`,`stime`,`etime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '廣告時(shí)間排期表';
首先用下面的命令看下sql_mode
show variables like 'sql_mode';
如果查詢的結(jié)果如下:
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
如果結(jié)果中含有NO_ZERO_IN_DATE, NO_ZERO_DATE
則執(zhí)行下面的命令:
set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
mysql時(shí)間類型字段自動(dòng)更新設(shè)置
alter table user modify column update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新時(shí)間'; alter table 表名 modify column 字段名 類型 NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘注釋';
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql中使用replace替換某字段的部分內(nèi)容
這篇文章主要介紹了mysql中使用replace替換某字段的部分內(nèi)容的方法,需要的朋友可以參考下2014-11-11mysql語(yǔ)法時(shí)采用了雙引號(hào)““的錯(cuò)誤問(wèn)題
錯(cuò)誤原因:使用雙引號(hào)定義表名和列名導(dǎo)致MySQL報(bào)錯(cuò),應(yīng)使用反引號(hào),修改方案:將雙引號(hào)改為反引號(hào),避免語(yǔ)法沖突,總結(jié):在MySQL中,正確使用反引號(hào)引用標(biāo)識(shí)符,確保SQL語(yǔ)句符合MySQL語(yǔ)法規(guī)則2024-10-10mysql全連接和oracle全連接查詢、區(qū)別及說(shuō)明
這篇文章主要介紹了mysql全連接和oracle全連接查詢、區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03mysql使用GROUP BY分組實(shí)現(xiàn)取前N條記錄的方法
這篇文章主要介紹了mysql使用GROUP BY分組實(shí)現(xiàn)取前N條記錄的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了mysql中GROUP BY分組的相關(guān)使用技巧,需要的朋友可以參考下2016-06-06Ubuntu與windows雙系統(tǒng)下共用MySQL數(shù)據(jù)庫(kù)的方法
ubuntu系統(tǒng)和windows系統(tǒng)雙系統(tǒng)共用是用戶喜歡使用的方式之一,而MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在Windows平臺(tái)中常以WAMP方式搭配使用,在Linux平臺(tái)中常以LAMP組合形式出現(xiàn),下面的方法可以使得Ubuntu平臺(tái)共用Windows平臺(tái)中的MySQL數(shù)據(jù)庫(kù)2012-01-01解析MSSQL跨數(shù)據(jù)庫(kù)查詢的實(shí)現(xiàn)方法
本篇文章是對(duì)MSSQL跨數(shù)據(jù)庫(kù)查詢的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Linux系統(tǒng)徹底刪除Mysql的詳細(xì)教程
我們?cè)谥匦掳惭bMySQL、或更新MySQL版本時(shí),一定會(huì)遇到mysql數(shù)據(jù)殘留(臟數(shù)據(jù)),或組件沖突等問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)徹底刪除Mysql的詳細(xì)教程,需要的朋友可以參考下2023-02-02