Maison >base de données >tutoriel mysql >Comment implémenter plusieurs champs TIMESTAMP avec CURRENT_TIMESTAMP dans MySQL ?
MySQL : prise en charge de plusieurs champs TIMESTAMP avec CURRENT_TIMESTAMP
La documentation MySQL indique qu'une table ne peut avoir qu'une seule colonne TIMESTAMP avec la valeur CURRENT_TIMESTAMP dans soit la clause DEFAULT ou ON UPDATE. Cela peut être limitant lorsque vous souhaitez suivre à la fois les horodatages de création et de mise à jour d'un enregistrement.
Gestion des erreurs
Lorsque vous essayez de créer une table avec plusieurs TIMESTAMP utilisant CURRENT_TIMESTAMP, vous rencontrerez une erreur comme la suivante :
ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Solution
Les versions récentes de MySQL (5.6.25 et versions ultérieures) ont résolu ce problème limitation. Vous pouvez désormais définir des tables avec plusieurs colonnes TIMESTAMP, chacune avec son propre comportement CURRENT_TIMESTAMP. Voici un exemple :
<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>
Avec cette syntaxe mise à jour, les colonnes ts_create et ts_update seront automatiquement définies sur l'horodatage actuel lorsqu'un nouvel enregistrement est inséré ou qu'un enregistrement existant est mis à jour.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!