ホームページ >データベース >mysql チュートリアル >MySQL で CURRENT_TIMESTAMP を使用して複数の TIMESTAMP フィールドを実装する方法

MySQL で CURRENT_TIMESTAMP を使用して複数の TIMESTAMP フィールドを実装する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-05 16:45:02939ブラウズ

How to Implement Multiple TIMESTAMP Fields with CURRENT_TIMESTAMP in MySQL?

MySQL: CURRENT_TIMESTAMP による複数の TIMESTAMP フィールドのサポート

MySQL のドキュメントには、テーブルには CURRENT_TIMESTAMP 値を持つ TIMESTAMP カラムを 1 つだけ持つことができると記載されています。 DEFAULT 句または ON UPDATE 句のいずれか。これは、レコードの作成タイムスタンプと更新タイムスタンプの両方を追跡したい場合に制限となる可能性があります。

エラー処理

複数のテーブルを作成しようとしたとき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 の最近のバージョン (5.6.25 以降) はこの問題に対処しました。制限。それぞれが独自の CURRENT_TIMESTAMP 動作を持つ、複数の TIMESTAMP 列を含むテーブルを定義できるようになりました。以下に例を示します。

<code class="sql">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
);</code>

この更新された構文では、新しいレコードが挿入されるか、既存のレコードが更新されると、ts_create 列と ts_update 列の両方が現在のタイムスタンプに自動的に設定されます。

以上がMySQL で CURRENT_TIMESTAMP を使用して複数の TIMESTAMP フィールドを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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