MySQL のようなリレーショナル データベース管理システムでは、レコードの作成時や更新時などの一時的な情報を維持することが重要ですデータの整合性と変更の追跡のため。 MySQL には、TIMESTAMP カラムに現在のシステム時刻を自動的に設定する CURRENT_TIMESTAMP 句が用意されています。
ただし、それぞれがデフォルト値または更新値として 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 の最新バージョン、 MySQL 5.6.25 などでは、この制限が解決されています。これらのバージョンでは、デフォルトまたは更新値として CURRENT_TIMESTAMP を使用して複数の TIMESTAMP 列を定義できます。
たとえば、2 つの TIMESTAMP 列、ts_create と ts_update を含むテーブルを、目的の動作で作成します。
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 );
このステートメントは両方の TIMESTAMP 列を含むテーブルを正常に作成し、レコードの作成時と更新時にそれぞれの値が現在のシステム時刻で自動的に更新されます。
以上がMySQL で CURRENT_TIMESTAMP を使用して複数の TIMESTAMP カラムを定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。