MySQL之timestamp
在mysql中,timestamp是經常用到的型別,大小是4個位元組,取值範圍是1970-2038。如果一個表中有多列timestamp欄位,在使用的時候需要注意一些細節。
建立一個表,兩個timestamp欄位,t1、t2什麼約束都不寫,那麼建表以後,檢視錶的DDL資訊會是這樣:
可以看到,什麼都不寫,第一個timestamp欄位預設就是DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;而第二個timestamp欄位預設是0。
如果t1、t2我都手動指定DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP呢?效果會怎樣?
結果,MySQL會報錯,建立失敗!
錯誤提示:只允許一個timestamp欄位(預設第一個)能夠利用CURRENT_TIMESTAMP,不管是default,還是on update。
點選(此處)摺疊或開啟
-
CREATE TABLE `test2` (
-
id INT(11) NOT NULL,
-
t1 TIMESTAMP,
-
t2 TIMESTAMP,
-
PRIMARY KEY (id)
- ) ENGINE=INNODB DEFAULT CHARSET=utf8
點選(此處)摺疊或開啟
-
CREATE TABLE `test2` (
-
id int(11) NOT NULL,
-
t1 timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-
t2 timestamp NOT NULL DEFAULT \'0000-00-00 00:00:00\',
-
PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8
如果t1、t2我都手動指定DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP呢?效果會怎樣?
結果,MySQL會報錯,建立失敗!
點選(此處)摺疊或開啟
-
CREATE TABLE `test2` (
-
`id` INT(11) NOT NULL,
-
`t1` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-
`t2` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-
PRIMARY KEY (`id`)
-
) ENGINE=INNODB DEFAULT CHARSET=utf8
-
-
-
1 queries executed, 0 success, 1 errors, 0 warnings
-
查詢:CREATE TABLE `test2` ( `id` int(11) NOT NULL, `t1` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `t2...
-
錯誤程式碼: 1293
-
Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
-
執行耗時 : 0 sec
-
傳送時間 : 0 sec
- 總耗時 : 0.004 sec
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28912557/viewspace-1688276/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL案例之Timestamp和DatetimeMySql
- mysql CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMPMySql
- MySQL: datetime vs timestampMySql
- TIMESTAMP和TIMESTAMP WITH TIME ZONE之間的總結
- mysql 資料型別TIMESTAMPMySQL 資料型別
- MySQL中的CURRENT_TIMESTAMPMySql
- mysql timestamp比較查詢MySql
- MySQL案例-TIMESTAMP NOT NULL與NULLMySqlNull
- mysql 多個TimeStamp設定MySql
- mysql default unix_timestamp(now())MySql
- MySQL 5.6 timestamp和datetime區別MySql
- Mysql中的Datetime和Timestamp比較MySql
- MySQL中datetime和timestamp的區別MySql
- MySQL 的 timestamp 和 datetime 型別比較MySql型別
- MYSQL timestamp NOT NULL插入NULL的報錯問題MySqlNull
- 故障分析 | MySQL 遷移後 timestamp 列 cannot be nullMySqlNull
- MySQL關於timestamp和mysqldump的一個“bug”MySql
- mysql資料庫date 、datetime、time、timestamp區別MySql資料庫
- 教你如何使用MySQL中CURRENT_TIMESTAMP時間戳MySql時間戳
- Oracle timestamp_to_scn and scn_to_timestampOracle
- date和timestamp型別之間的轉換型別
- String和Date、Timestamp之間的轉換
- oracle flashback特性(1.1)--閃回查詢之As of timestampOracle
- Mysql日期(DATE, TIME, DATETIME, TIMESTAMP)型別的比較MySql型別
- MySQL資料庫中的timestamp型別與時區MySql資料庫型別
- Oracle TimestampOracle
- Java:String和Date、Timestamp之間的轉換Java
- [Warning] TIMESTAMP with implicit DEFAULT --explicit_defaults_for_timestamp
- Mysql時間欄位格式如何選擇,TIMESTAMP,DATETIME,INT?MySql
- timestamp with local time zone型別和timestamp with time zone型別
- partitioned by timestamp datatype
- MySQL:一次timestamp時區轉換導致的問題MySql
- mysql-timestamp 0000-00-00 00:00:00 Invalid default valueMySql
- mysql 5.1.43 開始,對timestamp 型別的分割槽有所改變MySql型別
- [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.explicit_defaults_for_timestamp
- 全面學習oracle flashback特性(1.1)--閃回查詢之As of timestampOracle
- MySQL多個timestamp欄位自動新增預設值的問題MySql
- JavaScript event.timeStampJavaScript