DEFAULT 句または ON UPDATE 句の CURRENT_TIMESTAMP では TIMESTAMP カラムを 1 つだけ許可
MySQL の過去のコード制限により、テーブルに含まれる TIMESTAMP カラムは 1 つだけと制限されていました。 DEFAULT または ON の CURRENT_TIMESTAMP UPDATE句。ただし、この制限は MySQL の最近のバージョンでは解除されました。
レガシー エラー:
次のテーブル定義を考慮してください:
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 );
このテーブルを作成しようとすると、次のような結果になります。エラー:
Error Code : 1293 Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
MySQL 5.6.5 以降の解決策:
MySQL 5.6.5 以降、この制限は削除されました。すべての TIMESTAMP または DATETIME カラムに、DEFAULT CURRENT_TIMESTAMP 句と ON UPDATE CURRENT_TIMESTAMP 句の任意の組み合わせを含めることができるようになりました。
MySQL 5.6.5 リリース ノートによると、
Previously, at most one TIMESTAMP column per table could be automatically initialized or updated to the current date and time. This restriction has been lifted. Any TIMESTAMP column definition can have any combination of DEFAULT CURRENT_TIMESTAMP and ON UPDATE CURRENT_TIMESTAMP clauses.
したがって、提供されるテーブル定義は従来のエラーで作成できるようになりました成功しました:
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 );
以上がMySQL テーブルには CURRENT_TIMESTAMP を持つ複数の TIMESTAMP カラムを持つことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。