帶您了解MYSQL中TIMESTAMP類型
MYSQL中TIMESTAMP類型是學(xué)習(xí)MYSQL數(shù)據(jù)庫必須要掌握的知識,下面就帶您了解MYSQL中TIMESTAMP類型的默認(rèn)值,希望對您學(xué)習(xí)MYSQL中TIMESTAMP類型有所幫助。
MYSQL中TIMESTAMP類型的默認(rèn)值:
MYSQL中TIMESTAMP類型可以設(shè)定默認(rèn)值,就像其他類型一樣。
1、自動UPDATE 和INSERT 到當(dāng)前的時間:
表:
---------------------------------Table Create Table
------ -------------------------------------------------------------------------------------
t1 CREATE TABLE `t1` (
`p_c` int(11) NOT NULL,
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
數(shù)據(jù):
1 2007-10-08 11:53:35
2 2007-10-08 11:54:00
insert into t1(p_c) select 3;
update t1 set p_c = 2 where p_c = 5;
數(shù)據(jù):
1 2007-10-08 11:53:35
5 2007-10-08 12:00:37
3 2007-10-08 12:00:37
2、自動INSERT 到當(dāng)前時間,不過不自動UPDATE。
表:
---------------------------------
Table Create Table
------ ---------------------------------------------------------
t1 CREATE TABLE `t2` (
`p_c` int(11) NOT NULL,
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
數(shù)據(jù):
insert into t2(p_c) select 4;
update t2 set p_c = 3 where p_c = 5;
1 2007-10-08 11:53:35
2 2007-10-08 12:00:37
5 2007-10-08 12:00:37
4 2007-10-08 12:05:19
3、一個表中不能有兩個字段默認(rèn)值是當(dāng)前時間,否則就會出錯。不過其他的可以。
表:
---------------------------------
Table Create Table
------ ---------------------------------------------------------------
t1 CREATE TABLE `t1` (
`p_c` int(11) NOT NULL,
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`p_timew2` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
數(shù)據(jù):
1 2007-10-08 11:53:35 0000-00-00 00:00:00
2 2007-10-08 12:00:37 0000-00-00 00:00:00
3 2007-10-08 12:00:37 0000-00-00 00:00:00
4 2007-10-08 12:05:19 0000-00-00 00:00:00
TIMESTAMP的變體
1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
在創(chuàng)建新記錄和修改現(xiàn)有記錄的時候都對這個數(shù)據(jù)列刷新
2,TIMESTAMP DEFAULT CURRENT_TIMESTAMP
在創(chuàng)建新記錄的時候把這個字段設(shè)置為當(dāng)前時間,但以后修改時,不再刷新它
3,TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
在創(chuàng)建新記錄的時候把這個字段設(shè)置為0,以后修改時刷新它
4,TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss’ ON UPDATE CURRENT_TIMESTAMP
在創(chuàng)建新記錄的時候把這個字段設(shè)置為給定值,以后修改時刷新它
一般在數(shù)據(jù)庫結(jié)構(gòu)設(shè)計中,用datetime替換timestamp字段,用程序來實現(xiàn)時間的創(chuàng)建和修改,這樣可以控制的更加準(zhǔn)確,好處是,不至于你修改該表的任何數(shù)據(jù),此時間會隨之改變。
【編輯推薦】