MySQL: CURRENT_TIMESTAMP による複数の TIMESTAMP フィールドのサポート
MySQL のドキュメントには、テーブルには CURRENT_TIMESTAMP 値を持つ TIMESTAMP カラムを 1 つだけ持つことができると記載されています。 DEFAULT 句または ON UPDATE 句のいずれか。これは、レコードの作成タイムスタンプと更新タイムスタンプの両方を追跡したい場合に制限となる可能性があります。
エラー処理
複数のテーブルを作成しようとしたとき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 の最近のバージョン (5.6.25 以降) はこの問題に対処しました。制限。それぞれが独自の CURRENT_TIMESTAMP 動作を持つ、複数の TIMESTAMP 列を含むテーブルを定義できるようになりました。以下に例を示します。
<code class="sql">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 );</code>
この更新された構文では、新しいレコードが挿入されるか、既存のレコードが更新されると、ts_create 列と ts_update 列の両方が現在のタイムスタンプに自動的に設定されます。
以上がMySQL で CURRENT_TIMESTAMP を使用して複数の TIMESTAMP フィールドを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。