欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL 5.6 中 TIMESTAMP有那些變化

 更新時(shí)間:2015年08月14日 16:22:06   投稿:mrr  
前段時(shí)間,系統(tǒng)MySQL從5.5升級(jí)到了5.6,系統(tǒng)出現(xiàn)了大量的異常。大部分異常引起原因是由于TIMESTAMP的行為發(fā)生了變化,下面通過此篇文章給大家詳解MySQL 5.6 中 TIMESTAMP有那些變化,需要的朋友可以參考下

在MySQL 5.6.6之前,TIMESTAMP的默認(rèn)行為:

TIMESTAMP列如果沒有明確聲明NULL屬性,默認(rèn)為NOT NULL。(而其他數(shù)據(jù)類型,如果沒有顯示聲明為NOT NULL,則允許NULL值。)設(shè)置TIMESTAMP的列值為NULL,會(huì)自動(dòng)存儲(chǔ)為當(dāng)前timestamp。

表中的第一個(gè)TIMESTAMP列,如果沒有聲明NULL屬性、DEFAULT或者 ON UPDATE,會(huì)自動(dòng)分配 DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP 屬性。

表中第二個(gè)TIMESTAMP列,如果沒有聲明為NULL或者DEFAULT子句,默認(rèn)自動(dòng)分配'0000-00-00 00:00:00′。插入行時(shí)沒有指明改列的值,該列默認(rèn)分配'0000-00-00 00:00:00′,且沒有警告。

2列TIMESTAMP未聲明為NULL的默認(rèn)行為

從MySQL5.6.6開始這種默認(rèn)設(shè)置的方法被廢棄了。在MySQL啟動(dòng)時(shí)會(huì)出現(xiàn)以下警告:

[Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
Please use --explicit_defaults_for_timestamp server option
(seedocumentation for more details).

關(guān)閉警告,在my.cnf中加入

[mysqld]
explicit_defaults_for_timestamp=true

重啟MySQL后錯(cuò)誤消失,這時(shí)TIMESTAMP的行為如下:

TIMESTAMP如果沒有顯示聲明NOT NULL,是允許NULL值的,可以直接設(shè)置改列為NULL,而沒有默認(rèn)填充行為。

TIMESTAMP不會(huì)默認(rèn)分配DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP屬性。

MySQL5.6-INNODB-timestampTIMESTAMP 不設(shè)置是否為NULL

聲明為NOT NULL且沒有默認(rèn)子句的TIMESTAMP列是沒有默認(rèn)值的。往數(shù)據(jù)表中插入列,又沒有給TIMESTAMP列賦值時(shí),如果是嚴(yán)格SQL模式,會(huì)拋出一個(gè)錯(cuò)誤,如果嚴(yán)格SQL模式?jīng)]有啟用,該列會(huì)賦值為'0000-00-00 00:00:00′,同時(shí)出現(xiàn)一個(gè)警告。(這和MySQL處理其他時(shí)間類型數(shù)據(jù)一樣,如DATETIME)

TIMESTAMP 默認(rèn)設(shè)置為NOT NULL

Note:

以上內(nèi)容和存儲(chǔ)引擎選擇無關(guān)。

MySQL從5.5升級(jí)到5.6,TIMESTAMP的變化

前言

前段時(shí)間,系統(tǒng)MySQL從5.5升級(jí)到了5.6,系統(tǒng)出現(xiàn)了大量的異常。大部分異常引起原因是由于TIMESTAMP的行為發(fā)生了變化。

TIMESTAMP在MySQL5.5中的行為

第一個(gè)未設(shè)置默認(rèn)值的TIMESTAMP NOT NULL字段隱式默認(rèn)值:

CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 后面未設(shè)置默認(rèn)值的TIMESTAMP NOT NULL字段隱式默認(rèn)值:

0000-00-00 00:00:00 TIMESTAMP NOT NULL字段插入NULL時(shí),會(huì)使用隱式默認(rèn)值:

CURRENT_TIMESTAMP 不支持多個(gè)CURRENT_TIMESTAMP 默認(rèn)值

TIMESTAMP在MySQL5.6中的行為

支持多個(gè)CURRENT_TIMESTAMP 默認(rèn)值 可以兼容5.5的行為,支持隱性默認(rèn)值

explicit_defaults_for_timestamp=0 我測(cè)試安裝的MySQL5.6默認(rèn)使用這個(gè)參數(shù),啟動(dòng)時(shí),服務(wù)器會(huì)給出一個(gè)警告。

[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).

可以去掉隱性默認(rèn)值

explicit_defaults_for_timestamp=1

總結(jié)

MySQL5.5中TIMESTAMP行為是比較詭異的,會(huì)造成一些隱含的問題,比如程序中傳入了NULL值 MySQL5.6中可以將TIMESTAMP的行為變得正常,但會(huì)存在兼容問題 explicit_defaults_for_timestamp參數(shù)未來會(huì)消失 我們不要過度依賴數(shù)據(jù)庫的特性,這些特性會(huì)給應(yīng)用程序造成掣肘

相關(guān)文章

  • 詳解隱秘的?MySQL?類型轉(zhuǎn)換問題詳解

    詳解隱秘的?MySQL?類型轉(zhuǎn)換問題詳解

    這篇文章主要為大家介紹了詳解隱秘的?MySQL?類型轉(zhuǎn)換問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • MySQL中列轉(zhuǎn)行和行轉(zhuǎn)列總結(jié)解決思路

    MySQL中列轉(zhuǎn)行和行轉(zhuǎn)列總結(jié)解決思路

    最近工作中用到了好幾次列轉(zhuǎn)行,索性做個(gè)小總結(jié),下面這篇文章主要給大家介紹了關(guān)于MYSQL如何列轉(zhuǎn)行的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • MySQL日期與時(shí)間函數(shù)的使用匯總

    MySQL日期與時(shí)間函數(shù)的使用匯總

    這篇文章主要給大家匯總介紹了關(guān)于MySQL日期與時(shí)間函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Ubuntu?18.04.4安裝mysql的過程詳解?親測(cè)可用

    Ubuntu?18.04.4安裝mysql的過程詳解?親測(cè)可用

    這篇文章主要介紹了Ubuntu?18.04.4安裝mysql-親測(cè)可用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • mysql優(yōu)化利器之explain使用介紹

    mysql優(yōu)化利器之explain使用介紹

    這篇文章主要介紹了mysql優(yōu)化利器之explain使用介紹,需要的朋友可以參考下
    2017-01-01
  • 一文詳解如何徹底刪除舊版本mysql并安裝新版本

    一文詳解如何徹底刪除舊版本mysql并安裝新版本

    如果要重新安裝MySQL就必須將之前的MySQL進(jìn)行徹底的卸載,下面這篇文章主要給大家介紹了關(guān)于如何徹底刪除舊版本mysql并安裝新版本的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • mysql 8.0.22 安裝配置圖文教程

    mysql 8.0.22 安裝配置圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.22 安裝配置圖文教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • MySQL圖形化管理工具的使用及說明

    MySQL圖形化管理工具的使用及說明

    這篇文章主要介紹了MySQL圖形化管理工具的使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • MYSQL數(shù)據(jù)庫Innodb?引擎mvcc鎖實(shí)現(xiàn)原理

    MYSQL數(shù)據(jù)庫Innodb?引擎mvcc鎖實(shí)現(xiàn)原理

    這篇文章主要介紹了MYSQL數(shù)據(jù)庫Innodb?引擎mvcc鎖實(shí)現(xiàn)原理,但是mvcc?的實(shí)現(xiàn)原理是什么呢?下文我們就來實(shí)例說明來mvcc?的實(shí)現(xiàn)原理,感興趣的小伙伴可以參考一下
    2022-05-05
  • MySQL如何統(tǒng)計(jì)一個(gè)數(shù)據(jù)庫所有表的數(shù)據(jù)量

    MySQL如何統(tǒng)計(jì)一個(gè)數(shù)據(jù)庫所有表的數(shù)據(jù)量

    最近在做統(tǒng)計(jì)想查找一個(gè)數(shù)據(jù)庫里基本所有的表數(shù)據(jù)量,下面這篇文章主要給大家介紹了關(guān)于MySQL如何統(tǒng)計(jì)一個(gè)數(shù)據(jù)庫所有表的數(shù)據(jù)量的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04

最新評(píng)論