MySQL で CURRENT_TIMESTAMP を使用する方法

MySQL で CURRENT_TIMESTAMP を使用する方法

CURRENT_TIMESTAMPの使用

ご存知のとおり、MySQL の日付型では CURRENT_TIMESTAMP を使用してデフォルト値を指定できますが、これは MySQL のバージョンと日付の特定の型に関係しています。5.6 以降のバージョンでのみ、CURRENT_TIMESTAMP を DATETIME のデフォルト値として使用できます。

例えば:

ALTER TABLE t_user ADD update_time DATETIME DEFAULT CURRENT_TIMESTAMP

5.6より前のバージョンでは、CURRENT_TIMESTAMPをデフォルト値として使用すると、次のエラーが発生します。

[エラー] 1067 - 'update_time' のデフォルト値が無効です

MySQL 5.6.5 より前では、DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP は TIMESTAMP にのみ適用され、テーブル内の最大 1 つの TIMESTAMP フィールドでのみこの機能を使用できます。 MySQL 5.6.5 以降では、DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP は TIMESTAMP 列と DATETIME 列の両方に適用され、列の数に制限はありません。

CURRENT_TIMESTAMPを使用したタイムスタンプはエラーを報告します

プロジェクトに次のエラーがあります:

データベースの更新中にエラーが発生しました。

原因:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: 列 'createTime' は null にできません

データモデルは次のとおりです。

  /* 作成時間は空にできません */
  createTime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '作成時刻',
  /* 更新時間は空にできません */
  updateTime タイムスタンプ NOT NULL デフォルト CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間',

一連のトラブルシューティングを行った結果、問題は MySQL データベースの異なるバージョンのグローバル変数「explicit_defaults_for_timestamp」によって発生していることが判明しました。

--explicit_defaults_for_timestamp のデフォルト値を表示します。SHOW GLOBAL VARIABLES LIKE "explicit_defaults_for_timestamp"; 

--explicit_defaults_for_timestamp のデフォルト値を変更します。SET @@global.explicit_defaults_for_timestamp=OFF;

パラメータ値が「ON」の場合:

ここに画像の説明を挿入

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL における TIMESTAMP の使用法の詳細な説明
  • 例によるMySql CURRENT_TIMESTAMP関数の分析
  • MySQL で複数のタイムスタンプを設定する方法の解釈
  • mysql データ型 TIMESTAMP

<<:  CSS3のvar()を使用して実行時にscss変数の値を変更する詳細な説明

>>:  Node+Express テストサーバーのパフォーマンス

推薦する

CSS3はシームレスなスクロールと手ぶれ防止を実現します

質問画像とテキストのシームレスなスクロールは、一般的に携帯電話では良い効果をもたらしますが、一部のモ...

Mysql の主キー インデックスと非主キー インデックスの違いについて簡単に説明します。

目次インデックスとは何か主キーインデックスと通常のインデックスの違いインデックスにはどのデータ構造が...

CSS でより美しいリンクプロンプト効果をカスタマイズする方法

提案: コードをできるだけ手書きすると、学習の効率と深さを効果的に向上できます。デフォルトでは、&l...

HTML5 と HTML4 の 10 の主な違い

HTML5 は HTML 標準の次のバージョンです。ますます多くのプログラマーが、Web サイトの構...

CentOS 6.5 に MySQL 5.6 をインストールするチュートリアル

1. Linuxに対応するRPMパッケージをダウンロードする5.6 より前のバージョンhttp://...

Nginxホットデプロイメントの実装

目次セマフォNginx ホットデプロイメント上記のブログ投稿に従ってください。ファイアウォールをオフ...

JavaScript オブジェクトを作成する 3 つの方法

目次1. オブジェクトリテラル2. newキーワードはオブジェクトを作成する3. Object.cr...

Vue で wangeditor リッチテキスト編集を使用する際の問題

wangEditor は、JavaScript と CSS に基づいて開発された Web リッチ テ...

MySQLデータ移行の概要

目次序文: 1. データ移行について2. 移行計画と留意点要約:序文:日常業務では、テーブル、データ...

VUEの基本を理解するのに役立つ記事

目次VUEとはVueのコアプラグインVueルーターヴュークスアクシオス要素UI Vue フロントエン...

Centos 6.9 に MySQL をインストールするための詳細なチュートリアル

1. MySQLがインストールされているかどうかを確認します。次のコードで確認できます。 [root...

HTML タグ マーキーはさまざまなスクロール効果を実現します (JS 制御なし)

ページの自動スクロール効果は JavaScript で実現できますが、今日偶然、JS 制御なしでさま...

Vuex のコアコンセプトと基本的な使用法の詳細な説明

目次導入始めるインストール①直接ダウンロードする方法②CND法③NPM方式④糸法NPMインストールの...

Vue-Element-Adminはログインジャンプを実現するために独自のインターフェースを統合しています

1. まずリクエスト設定ファイルを見て、axios.createメソッドを見てください。baseUR...