Maison >base de données >tutoriel mysql >Comment implémenter plusieurs champs TIMESTAMP avec CURRENT_TIMESTAMP dans MySQL ?

Comment implémenter plusieurs champs TIMESTAMP avec CURRENT_TIMESTAMP dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-05 16:45:02936parcourir

How to Implement Multiple TIMESTAMP Fields with CURRENT_TIMESTAMP in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn