ホームページ >データベース >mysql チュートリアル >MySQL テーブルに CURRENT_TIMESTAMP を持つ複数の TIMESTAMP カラムを持つことができるようになりましたか?

MySQL テーブルに CURRENT_TIMESTAMP を持つ複数の TIMESTAMP カラムを持つことができるようになりましたか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-30 01:47:10379ブラウズ

Can MySQL Tables Now Have Multiple TIMESTAMP Columns with CURRENT_TIMESTAMP?

CURRENT_TIMESTAMP 制限が解除された 1 つの TIMESTAMP カラム

以前のバージョンの MySQL では、テーブルには CURRENT_TIMESTAMP 値を持つ TIMESTAMP カラムを 1 つしか含めることができませんでした。 DEFAULT 句または ON UPDATE 句のいずれか。このような列が複数あるテーブルを作成しようとすると、エラーが発生しました。

制限条項

以下のステートメントは、エラーが発生しやすい構造を示しています。

CREATE TABLE `foo` (
  `ProductID` INT(10) UNSIGNED NOT NULL,
  `AddedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `UpdatedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=INNODB;

エラー戻り値:

Error Code : 1293
Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

歴史的理由

この制限は、歴史的にコードのレガシーな理由に根ざしています。ただし、最近の MySQL バージョンでは解除されました。

制限の削除

この制限は、2012 年 4 月 10 日に MySQL 5.6.5 で削除されました。リリース ノートstate:

"以前は、テーブルごとに最大 1 つの TIMESTAMP カラムが自動的に初期化できましたまたは現在の日付と時刻に更新されます。この制限は解除されました。すべての TIMESTAMP 列定義に DEFAULT CURRENT_TIMESTAMP 句と ON UPDATE CURRENT_TIMESTAMP 句を組み合わせて使用​​できるようになりました。"

影響

この変更はMySQL では、テーブル設計の柔軟性が高まります。開発者は、CURRENT_TIMESTAMP 値を持つ複数の TIMESTAMP 列を使用して、単一エンティティのさまざまな側面の変更を追跡できるようになりました。

以上がMySQL テーブルに CURRENT_TIMESTAMP を持つ複数の TIMESTAMP カラムを持つことができるようになりましたか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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