mysql datetime設(shè)置now()無效的,沒有此用法,datetime類型不能設(shè)置函數(shù)式默認(rèn)值,只能通過觸發(fā)器等來搞。
成都創(chuàng)新互聯(lián)公司主營中江網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),中江h(huán)5小程序制作搭建,中江網(wǎng)站營銷推廣歡迎中江等地區(qū)企業(yè)咨詢
想設(shè)置默認(rèn)值,只能使用timestamp類型,然后默認(rèn)值設(shè)置為:CURRENT_TIMESTAMP
修改日期類型為timestamp 并允許空,如下:
CREATE TABLE `test` (`aaaa` varchar(50) NOT NULL,`createday` timestamp NULL DEFAULT
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT
CHARSET=utf8;
如果是在navicat下操作的話,設(shè)置字段的類型為timestamp,默認(rèn)值寫上CURRENT_TIMESTAMP
擴(kuò)展資料
mysql中的時(shí)間類型:
mysql中我們用的時(shí)間類型有DATE DATETIME TIME TIMESTAMP四種:
1、DATE只表示日期,檢索以YYYY-MM-DD的格式顯示,范圍是1000-01-01到9999-12-31。
2、TIME只表示時(shí)間,檢索以HH:MM:SS格式顯示,范圍是00:00:00到23:59:59。
3、DATETIME表示了日期和時(shí)間,檢索以YYYY-MM-DD HH:MM:SS格式顯示。
4、TIMESTAMP和DATETIME表示格式一樣兩者的不同點(diǎn)如下:
當(dāng)使用timestamp的時(shí)候,數(shù)據(jù)有更新的時(shí)候這個(gè)字段自動(dòng)更新為當(dāng)前時(shí)間,所以可以作為lastmodify使用,這個(gè)變化是默認(rèn)設(shè)置,如果想使時(shí)間不更新可以設(shè)置DEFAULT CURRENT_TIMESTAMP
timestamp的范圍不能早于1970或者晚于2037,超過這個(gè)時(shí)間范圍的話為0。
timestamp存儲(chǔ)的時(shí)候是轉(zhuǎn)為UTC存儲(chǔ)的,獲取的時(shí)候根據(jù)客戶端所在時(shí)區(qū)進(jìn)行展示。
timestamp占4個(gè)字節(jié),datetime占8個(gè)字節(jié)。
mysql的字段默認(rèn)值不可以是函數(shù)。除
timestamp字段可以用current_timestamp外。其它都使用常數(shù)為默認(rèn)值。
下面的例子是:在名字為database的表中插入一個(gè)名為addtime的字節(jié),并且默認(rèn)值為當(dāng)前時(shí)間。
alter
table
`database`add
addtime
timestamp
not
null
default
current_timestamp()
;
database是表名,
addtime是字段名,
timestamp是類型,
not
null表明不能為空,
default
current_timestamp()默認(rèn)時(shí)間為當(dāng)前時(shí)間。
mysql安裝成功后,在系統(tǒng)中默認(rèn)建立一個(gè)usr用戶,查看mysql.user表的方法:
1、在電腦中必須裝有MySQL數(shù)據(jù)庫。
2、打開電腦中的MySQLWorkbench軟件。點(diǎn)擊已有的連接,輸入密碼進(jìn)行登錄。
3、登錄成功后,輸入代碼“showdatabases;”,可以查看mysql中有哪些數(shù)據(jù)庫。點(diǎn)擊上方“閃電”圖標(biāo)執(zhí)行輸入的代碼。可以發(fā)現(xiàn)一個(gè)名為mysql的數(shù)據(jù)庫。
4、輸入代碼“use mysql; show tables;”點(diǎn)擊執(zhí)行,會(huì)進(jìn)入mysql數(shù)據(jù)庫中,并為顯示mysql中的數(shù)據(jù)表。數(shù)據(jù)表比較多,將右側(cè)滑動(dòng)條滑至底部,可以發(fā)現(xiàn)最后一個(gè)便是需要的user表。
5、輸入代碼“descuser;”點(diǎn)擊執(zhí)行,可以查看個(gè)字段的基本信息。字段比較多可以滑動(dòng)右側(cè)滑動(dòng)條進(jìn)行查看。
6、輸入代碼“select*fromuser;”點(diǎn)擊執(zhí)行,會(huì)顯示user表中的數(shù)據(jù)信息,如圖user表中共有四條數(shù)據(jù)。數(shù)據(jù)比較長可以滑動(dòng)下方滑動(dòng)條進(jìn)行查看。
-- 方法一:
由于MySQL目前字段的默認(rèn)值不支持函數(shù),所以以create_time datetime default now() 的形式設(shè)置默認(rèn)值是不可能的。代替的方案是使用TIMESTAMP類型代替DATETIME類型。
TIMESTAMP列類型自動(dòng)地用當(dāng)前的日期和時(shí)間標(biāo)記INSERT或UPDATE的操作。如果有多個(gè)TIMESTAMP列,只有第一個(gè)自動(dòng)更新。
自動(dòng)更新第一個(gè)TIMESTAMP列在下列任何條件下發(fā)生:
1.列值沒有明確地在一個(gè)INSERT或LOAD DATA INFILE語句中指定。
2.列值沒有明確地在一個(gè)UPDATE語句中指定且另外一些的列改變值。(注意一個(gè)UPDATE設(shè)置一個(gè)列為它已經(jīng)有的值,這將不引起TIMESTAMP列被更新,因?yàn)槿绻阍O(shè)置一個(gè)列為它當(dāng)前的值,MySQL為了效率而忽略更改。)
3.你明確地設(shè)定TIMESTAMP列為NULL.
4.除第一個(gè)以外的TIMESTAMP列也可以設(shè)置到當(dāng)前的日期和時(shí)間,只要將列設(shè)為NULL,或NOW()。
所以把日期類型 選擇成timestamp 允許空就可以了
CREATE TABLE test (
uname varchar(50) NOT NULL,
updatetime timestamp NULL DEFAULTCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果要在navicat下操作的話,將字段設(shè)置為timestamp,然后默認(rèn)值寫上CURRENT_TIMESTAMP即可
1、mysql默認(rèn)的有
mysql
test
information_schema
performance_schema
2、創(chuàng)建用戶時(shí)候可以設(shè)定默認(rèn)數(shù)據(jù)庫
mysql
-uroot
-p123456
-e"CREATE
USER
'user1'@'localhost'
IDENTIFIED
BY
'123456';"
mysql
-uroot
-p123456
-e"GRANT
ALL
ON
db01.*
TO
'user1'@'localhost';"
3、登陸時(shí)候可以指定數(shù)據(jù)庫,例如
mysql
-A
-uroot
-p123456
-Dmysql
網(wǎng)頁名稱:mysql中默認(rèn)怎么添 mysql 默認(rèn)
網(wǎng)頁網(wǎng)址:http://www.rwnh.cn/article4/hicpie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、建站公司、、小程序開發(fā)、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)