ホームページ >データベース >mysql チュートリアル >MySQL テーブルに CURRENT_TIMESTAMP を持つ複数の 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 サイトの他の関連記事を参照してください。