分享mysql的current_timestamp小坑及解決
mysql的current_timestamp小坑
報錯
Incorrect table definition;there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
網(wǎng)上的答案基本如下,但是就是沒有具體解決
方案原因是當(dāng)你給一個timestamp設(shè)置為on updatecurrent_timestamp的時候,其他的timestamp字段需要顯式設(shè)定default值
但是如果你有兩個timestamp字段,但是只把第一個設(shè)定為current_timestamp而第二個沒有設(shè)定默認值,MySQL能成功建表,但是反過來就不行…
我的方案
卸載當(dāng)前低版本的mysql,安裝5.6以上版本的mysql,推薦mysql5.7版本相對穩(wěn)定點。
mysql5.5.23 current_timestamp問題
今天新建一個表,里面兩個字段:創(chuàng)建時間和更新時間,兩個默認值都是當(dāng)前時間,一執(zhí)行sql就報錯。
ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
我在其它的項目里面都是這樣用的sql,而且也能正常用,為什么今天執(zhí)行不成功呢?在確認sql沒有語法錯誤后,在網(wǎng)上查了一下資料。原來是mysql5.5在一個表內(nèi)只支持一個時間字段使用CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP。但是在5.6里面支持多個。
原版說明
It is not possible to have the current timestamp be the default value for one column and the auto-update value for another column.
解決辦法
去掉創(chuàng)建時間默認值
查看mysql版本號用 status命令

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
phpmyadmin中為站點設(shè)置mysql權(quán)限的圖文方法
在一個服務(wù)器上一般來講都不止一個站點,更不止一個MySQL(和PHP搭配之最佳組合)數(shù)據(jù)庫。2011-03-03
Mysql 5.5.56版本(二進制包安裝)自定義安裝路徑步驟記錄
這篇文章主要介紹了Mysql 5.5.56版本(二進制包安裝)自定義安裝路徑步驟記錄,需要的朋友可以參考下2017-07-07
MySQL關(guān)于字符串中數(shù)字排序的問題分析
這篇文章主要介紹了MySQL關(guān)于字符串中數(shù)字排序的問題,結(jié)合實例形式分析了mysql按照數(shù)值排序的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-06-06
關(guān)于MySQL外鍵的簡單學(xué)習(xí)教程
這篇文章主要介紹了關(guān)于MySQL外鍵的簡單學(xué)習(xí)教程,對InnoDB引擎下的外鍵約束做了簡潔的講解,需要的朋友可以參考下2015-11-11

