最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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ā)生了變化,下面通過(guò)此篇文章給大家詳解MySQL 5.6 中 TIMESTAMP有那些變化,需要的朋友可以參考下

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

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

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

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

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

從MySQL5.6.6開(kāi)始這種默認(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如果沒(méi)有顯示聲明NOT NULL,是允許NULL值的,可以直接設(shè)置改列為NULL,而沒(méi)有默認(rèn)填充行為。

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

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

聲明為NOT NULL且沒(méi)有默認(rèn)子句的TIMESTAMP列是沒(méi)有默認(rèn)值的。往數(shù)據(jù)表中插入列,又沒(méi)有給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í)間類(lèi)型數(shù)據(jù)一樣,如DATETIME)

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

Note:

以上內(nèi)容和存儲(chǔ)引擎選擇無(wú)關(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ì)造成一些隱含的問(wèn)題,比如程序中傳入了NULL值 MySQL5.6中可以將TIMESTAMP的行為變得正常,但會(huì)存在兼容問(wèn)題 explicit_defaults_for_timestamp參數(shù)未來(lái)會(huì)消失 我們不要過(guò)度依賴(lài)數(shù)據(jù)庫(kù)的特性,這些特性會(huì)給應(yīng)用程序造成掣肘

相關(guān)文章

  • Mysql5.6 忘記root密碼的解決辦法

    Mysql5.6 忘記root密碼的解決辦法

    mysql5.6忘記root密碼怎么辦,用什么方法可以重置root密碼呢?下面通過(guò)本文給大家介紹Mysql5.6 忘記root密碼的解決辦法,需要的朋友參考下
    2016-01-01
  • navicat 8 創(chuàng)建數(shù)據(jù)庫(kù)與創(chuàng)建用戶(hù)分配權(quán)限圖文方法

    navicat 8 創(chuàng)建數(shù)據(jù)庫(kù)與創(chuàng)建用戶(hù)分配權(quán)限圖文方法

    navicat是一款不錯(cuò)的圖形化管理mysql的工具,大家一般都是用phpmyadmin或直接命令行操作,對(duì)于不是很熟悉命令的朋友,就可以使用navicat這個(gè)工具了,方便操作。
    2011-04-04
  • mysql連接查詢(xún)、聯(lián)合查詢(xún)、子查詢(xún)?cè)砼c用法實(shí)例詳解

    mysql連接查詢(xún)、聯(lián)合查詢(xún)、子查詢(xún)?cè)砼c用法實(shí)例詳解

    這篇文章主要介紹了mysql連接查詢(xún)、聯(lián)合查詢(xún)、子查詢(xún)?cè)砼c用法,結(jié)合實(shí)例形式詳細(xì)分析了mysql連接查詢(xún)、聯(lián)合查詢(xún)、子查詢(xún)的基本概念、功能、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • B-樹(shù)的刪除過(guò)程介紹

    B-樹(shù)的刪除過(guò)程介紹

    今天小編就為大家分享一篇關(guān)于B-樹(shù)的刪除過(guò)程介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • MySQL學(xué)習(xí)筆記3:表的基本操作介紹

    MySQL學(xué)習(xí)筆記3:表的基本操作介紹

    要操作表首先需要選定數(shù)據(jù)庫(kù),因?yàn)楸硎谴嬖谟跀?shù)據(jù)庫(kù)內(nèi)的;表的基本操作包括:創(chuàng)建表、顯示表、查看表基本結(jié)構(gòu)、查看表詳細(xì)結(jié)構(gòu)以及刪除表等等,需要了解的朋友可以參考下
    2013-01-01
  • mysql中order by與group by的區(qū)別

    mysql中order by與group by的區(qū)別

    以下是對(duì)mysql中order by與group by的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-07-07
  • MySql COALESCE函數(shù)使用方法代碼案例

    MySql COALESCE函數(shù)使用方法代碼案例

    這篇文章主要介紹了MySql COALESCE函數(shù)使用方法代碼案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 圖文詳解Mysql中如何查看Sql語(yǔ)句的執(zhí)行時(shí)間

    圖文詳解Mysql中如何查看Sql語(yǔ)句的執(zhí)行時(shí)間

    寫(xiě)程序的人往往需要分析所寫(xiě)的SQL語(yǔ)句是否已經(jīng)優(yōu)化過(guò)了,服務(wù)器的響應(yīng)時(shí)間有多快,所以下面這篇文章主要給大家介紹了關(guān)于Mysql中如何查看Sql語(yǔ)句的執(zhí)行時(shí)間的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • MYSQL 數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出命令

    MYSQL 數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出命令

    在不同操作系統(tǒng)或MySQL版本情況下,直接拷貝文件的方法可能會(huì)有不兼容的情況發(fā)生。所以一般推薦用SQL腳本形式導(dǎo)入。下面分別介紹兩種方法。
    2010-11-11
  • MySQL8.0.28安裝教程詳細(xì)圖解(windows?64位)

    MySQL8.0.28安裝教程詳細(xì)圖解(windows?64位)

    如果電腦上已經(jīng)有MySQL數(shù)據(jù)庫(kù)再進(jìn)行重做往往會(huì)遇到問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于windows?64位系統(tǒng)下MySQL8.0.28安裝教程的詳細(xì)教程,文章通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04

最新評(píng)論

揭阳市| 金山区| 蓝田县| 和静县| 望城县| 探索| 全州县| 安义县| 稷山县| 通山县| 上犹县| 买车| 西华县| 年辖:市辖区| 长寿区| 双流县| 珲春市| 武城县| 兴仁县| 九江市| 卢氏县| 洪湖市| 康马县| 随州市| 牡丹江市| 广水市| 柘荣县| 长乐市| 赞皇县| 临漳县| 泸溪县| 广丰县| 南昌县| 威信县| 天柱县| 明水县| 苏尼特左旗| 宜宾县| 新邵县| 临泉县| 喜德县|