MySQL の current_timestamp の落とし穴とその解決策を共有する

MySQL の current_timestamp の落とし穴とその解決策を共有する

MySQL の current_timestamp の落とし穴

エラーを報告する

テーブル定義が正しくありません。DEFAULT または ON UPDATE 句で CURRENT_TIMESTAMP を持つ TIMESTAMP 列は 1 つしか存在できません。

ネット上の回答は基本的に以下の通りだが、具体的な解決策はない

この解決策の理由は、タイムスタンプをupdatecurrent_timestampに設定すると、他のタイムスタンプフィールドは明示的にデフォルト値を設定する必要があるためです。

しかし、タイムスタンプ フィールドが 2 つあり、最初のフィールドのみを current_timestamp に設定し、2 番目のフィールドにデフォルト値がない場合、MySQL はテーブルを正常に作成できますが、その逆の場合は作成できません...

私の解決策

現在の下位バージョンの MySQL をアンインストールし、MySQL バージョン 5.6 以降をインストールします。MySQL バージョン 5.7 は比較的安定しているため、推奨されます。

mysql5.5.23 current_timestamp の問題

今日は、作成時間と更新時間の 2 つのフィールドを持つ新しいテーブルを作成しました。デフォルト値は両方とも現在の時刻です。SQL を実行するとエラーが発生します。

エラー 1293 (HY000): テーブル定義が正しくありません。DEFAULT または ON UPDATE 句で CURRENT_TIMESTAMP を持つ TIMESTAMP 列は 1 つしか存在できません。

この SQL を他のプロジェクトで使用しましたが、問題なく動作しました。今日はなぜ正常に実行できないのでしょうか? SQLに構文エラーがないことを確認した後、オンラインで情報を確認しました。 MySQL 5.5 では、CURRENT_TIMESTAMP と ON UPDATE CURRENT_TIMESTAMP を使用するテーブル内の 1 つの時間フィールドのみがサポートされることが判明しました。しかし、5.6 では複数をサポートします。

元の説明

現在のタイムスタンプを 1 つの列のデフォルト値とし、別の列の自動更新値にすることはできません。

解決

デフォルトの作成時間を削除する

ステータスコマンドを使用してMySQLのバージョン番号を確認する

這里寫圖片描述

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

以下もご興味があるかもしれません:
  • CURRENT_TIMESTAMP を使用した MySQL エラー TIMESTAMP 列の解決方法
  • 例によるMySql CURRENT_TIMESTAMP関数の分析
  • MySQL における TIMESTAMP の使用法の詳細な説明

<<:  ページにスクロールバーが表示されたときに、スクロールバーがページ幅に影響しないようにする方法

>>:  CSSアニメーションとSVGを組み合わせてエネルギーの流れの効果を作成する

推薦する

MySQL 8.0 における非同期レプリケーションの 3 つの方法について簡単に説明します。

この実験では、空のデータベース、オフライン、オンラインの 3 つのモードで、1 つのマスターと 2 ...

MySQL で CURRENT_TIMESTAMP を使用する方法

目次CURRENT_TIMESTAMPの使用CURRENT_TIMESTAMPを使用したタイムスタン...

ウィンドウ内のさまざまな距離/スクロール距離の正確な計算の概要

通常、プロジェクト開発では、マージン、位置、座標などを扱う必要があります。悲劇なのは、これらの概念が...

HTMLフォーム属性のreadonlyとdisabledの使い方

1. readonly 読み取り専用属性なので、値を取得できます2. 無効: 無効な属性、値を取得で...

JS での new の手書き実装

目次1 新しいオペレータの紹介2 新しいものは何をしましたか? 3 新しい演算子の実装をシミュレート...

VMware Workstation での VMware vSphere のセットアップ (グラフィック チュートリアル)

VMware vSphere は、業界をリードする最も信頼性の高い仮想化プラットフォームです。 v...

Vue のローカルコンポーネントの紹介

Vueでは、ローカルコンポーネントを自分で定義(登録)することができます。コンポーネント名を定義する...

Vue3 コンポジション API の紹介

目次概要例なぜそれが必要なのでしょうか?設定参照、反応的計算して見るライフサイクルVue3.0 は ...

Linuxはlsof/extundeleteツールを使用して、誤って削除されたファイルやディレクトリを復元します。

序文Linux には Windows のような目立つごみ箱がないため、簡単に復元することはできません...

MySQL ストアド関数(カスタム関数)の定義と使用方法の詳細な説明

ストアド関数ストアド関数とは: SQL コードの一部をカプセル化し、特定の関数を完了して、結果を返し...

Nginx_geo モジュールを使用して CDN スケジュールを設定する方法

NginxのGeoモジュールの紹介geo ディレクティブは、ngx_http_geo_module ...

MySQLデータを復元する2つの方法

1. はじめに少し前、開発者がテスト環境や本番環境で誤った操作をし、データベースを誤って削除/更新し...

Navicat for MySQL チュートリアル

まず、Navicat for MySQL をダウンロードしてインストールする必要があります。正規版の...

MySQLオンラインDDLの使用に関する詳細な説明

目次文章LOCKパラメータアルゴリズムパラメータCOPY TABLE プロセスIN-PLACEプロセ...