ホームページ > データベース > mysql チュートリアル > MySQL では複数の TIMESTAMP カラムに CURRENT_TIMESTAMP を設定できますか?

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

Linda Hamilton
リリース: 2024-10-29 21:26:29
オリジナル
1009 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート