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を組み合わせてエネルギーの流れの効果を作成する

推薦する

Jenkins の Docker のデプロイとインストール手順

まず、Docker がインストールされたサーバーが必要です。 (私はすでにこれをサーバーにインストー...

VUE無限レベルツリーデータ構造表示の実装

目次コンポーネントの再帰呼び出しレンダリングメソッドの使用プロジェクトに取り組んでいると、左側のメニ...

MySQL ステートメントロックの実装の分析

概要: 2 つの MySQL SQL ステートメント ロックの分析次のSQL文にどのようなロックが追...

SQLインジェクションの詳しい解説 - セキュリティ編(第2部)

この記事に誤りがあったり、ご提案がありましたら、お気軽にご連絡ください。よろしくお願いいたします。は...

WeChatアプレットが計算機機能を実装

WeChatミニプログラムはますます人気が高まっています。多くの大学生が独学で学んでいるのも見てきま...

Ubuntu サーバーで MySQL を設定し、リモート接続を実装する方法

サーバー: Ubuntu Server 16.04 LSSクライアント: Ubuntu 16.04 ...

HTML マウス CSS コントロール

一般的に、マウスは上向きの斜め矢印として表示され、テキストの上に移動すると垂直線になり、ハイパーリン...

Nginxサービス500:内部サーバーエラーの原因の1つ

500 (内部サーバー エラー) サーバーでエラーが発生したため、要求を完了できませんでした。 50...

mysql mycat ミドルウェアの簡単な紹介

1. mycatとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベ...

MySQL エラー「すべての派生テーブルには独自のエイリアスが必要です」の解決方法

MySQL は、マルチテーブルクエリを実行するときにエラーを報告します。 [SQL] SELECT ...

Linuxで中断されたシステムを呼び出す方法

序文低速システム コールとは、決して戻らない可能性があり、プロセスを永久にブロックするシステム コー...

Centos7にnginxをインストールする方法

必要な環境をインストールする1. gccのインストールnginx をインストールするには、公式サイト...

Vue プロジェクトで Baidu Map API を使用する方法

目次1. Baidu Map Open Platformにアカウントを登録してログインする2. 必要...

CSS の position 属性の値に関する研究 (概要)

CSS の位​​置属性は要素の配置タイプを指定し、上、下、左、右を使用して要素を具体的に配置します...