ホームページ  >  記事  >  データベース  >  MySQL で CURRENT_TIMESTAMP を使用して複数の TIMESTAMP カラムを定義するにはどうすればよいですか?

MySQL で CURRENT_TIMESTAMP を使用して複数の TIMESTAMP カラムを定義するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-31 03:03:02862ブラウズ

How Can I Define Multiple TIMESTAMP Columns with CURRENT_TIMESTAMP in MySQL?

作成および更新操作のために MySQL で CURRENT_TIMESTAMP を管理する

MySQL のようなリレーショナル データベース管理システムでは、レコードの作成時や更新時などの一時的な情報を維持することが重要ですデータの整合性と変更の追跡のため。 MySQL には、TIMESTAMP カラムに現在のシステム時刻を自動的に設定する CURRENT_TIMESTAMP 句が用意されています。

ただし、それぞれがデフォルト値または更新値として CURRENT_TIMESTAMP を持つ複数の TIMESTAMP カラムを持つテーブルを定義しようとすると、次のような問題が発生する可能性があります。次のエラー:

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

このエラーにより、タイムスタンプ列を個別に作成し、更新するという望ましい動作でテーブルを作成できなくなります。

解決策

MySQL の最新バージョン、 MySQL 5.6.25 などでは、この制限が解決されています。これらのバージョンでは、デフォルトまたは更新値として CURRENT_TIMESTAMP を使用して複数の TIMESTAMP 列を定義できます。

たとえば、2 つの TIMESTAMP 列、ts_create と ts_update を含むテーブルを、目的の動作で作成します。

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
);

このステートメントは両方の TIMESTAMP 列を含むテーブルを正常に作成し、レコードの作成時と更新時にそれぞれの値が現在のシステム時刻で自動的に更新されます。

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

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