ホームページ  >  記事  >  データベース  >  MySQL では複数の TIMESTAMP カラムに CURRENT_TIMESTAMP を設定できますか?

MySQL では複数の TIMESTAMP カラムに CURRENT_TIMESTAMP を設定できますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-29 21:26:29909ブラウズ

Can Multiple TIMESTAMP Columns Have CURRENT_TIMESTAMP in MySQL?

作成および更新時の MySQL CURRENT_TIMESTAMP

MySQL テーブルを定義する場合、レコードの作成と変更を追跡するためにタイムスタンプを含めることが望ましい。ただし、CURRENT_TIMESTAMP をデフォルトとして使用するか、値を更新して 2 つの TIMESTAMP フィールドを定義しようとすると、エラーが発生することがあります。

エラー メッセージ

ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

原因

MySQL バージョン 5.6.25 より前のバージョンでは、CURRENT_TIMESTAMP をデフォルトまたは更新値として定義できる TIMESTAMP カラムは 1 つだけでした。

解決策

MySQL バージョン 5.6.25 以降では、それぞれに独自の CURRENT_TIMESTAMP 設定を持つ複数の TIMESTAMP カラムを定義できます。 MySQL 8.0 では、この制限は完全に削除されました。したがって、バージョン 5.6.25 以降では、次のテーブル定義が正しく機能するはずです。

CREATE TABLE `msgs` (
    `id` INT PRIMARY KEY AUTO_INCREMENT,
    `msg` VARCHAR(256),
    `ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    `ts_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

この定義は、2 つの TIMESTAMP フィールド、ts_create と ts_update を持つテーブルを作成します。これらのテーブルは、現在のタイムスタンプで自動的に更新されます。レコードの作成時と更新時のタイムスタンプ。

以上がMySQL では複数の TIMESTAMP カラムに CURRENT_TIMESTAMP を設定できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。