CURRENT_TIMESTAMP を使用した複数の TIMESTAMP カラムの管理
MySQL では、CURRENT_TIMESTAMP のデフォルト値を使用して複数の TIMESTAMP カラムを定義すると、「テーブル定義が正しくありません」というエラーが発生する可能性があります; DEFAULT 句または ON UPDATE 句に CURRENT_TIMESTAMP を持つ TIMESTAMP 列は 1 つだけ存在できます。この制限を克服するには、最近の MySQL エディション (例: 5.6.25) で次のアプローチを検討してください。
解決策:
テーブル定義を次のように変更します。
<code class="sql">CREATE TABLE `msgs` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `msg` VARCHAR(256), `ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `ts_update` TIMESTAMP NOT NULL, CONSTRAINT UPDATE_ON_CHANGE_ts_update FOREIGN KEY (`ts_update`) REFERENCES `msgs` (`ts_create`) ON DELETE SET NULL ON UPDATE CURRENT_TIMESTAMP )</code>
この変更されたスキーマでは:
このアプローチにより、MySQL エラーを回避しながら、レコードの作成と更新のタイムスタンプの両方を追跡するという望ましい動作を維持できます。
以上がMySQL で CURRENT_TIMESTAMP を使用して複数の TIMESTAMP カラムを管理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。