Maison  >  Article  >  base de données  >  Comment puis-je définir plusieurs colonnes TIMESTAMP avec CURRENT_TIMESTAMP dans MySQL ?

Comment puis-je définir plusieurs colonnes TIMESTAMP avec CURRENT_TIMESTAMP dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 03:03:02862parcourir

How Can I Define Multiple TIMESTAMP Columns with CURRENT_TIMESTAMP in MySQL?

Gérer CURRENT_TIMESTAMP dans MySQL pour les opérations de création et de mise à jour

Dans les systèmes de gestion de bases de données relationnelles comme MySQL, la conservation des informations temporelles, par exemple lorsque les enregistrements sont créés ou mis à jour, est cruciale pour l’intégrité des données et le suivi des modifications. MySQL fournit la clause CURRENT_TIMESTAMP pour remplir automatiquement les colonnes TIMESTAMP avec l'heure système actuelle.

Cependant, lorsque vous essayez de définir une table avec plusieurs colonnes TIMESTAMP, chacune avec CURRENT_TIMESTAMP comme valeur par défaut ou lors de la mise à jour, vous pouvez rencontrer le erreur suivante :

ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

Cette erreur vous empêche de créer la table avec le comportement souhaité de colonnes d'horodatage de création et de mise à jour distinctes.

Résolution

Versions récentes de MySQL, tels que MySQL 5.6.25, ont résolu cette limitation. Dans ces versions, il est possible de définir plusieurs colonnes TIMESTAMP avec CURRENT_TIMESTAMP comme valeur par défaut ou en mise à jour.

Par exemple, pour créer une table avec deux colonnes TIMESTAMP, ts_create et ts_update, avec le comportement souhaité :

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
);

Cette instruction créera avec succès la table avec les deux colonnes TIMESTAMP, et leurs valeurs seront automatiquement mises à jour avec l'heure actuelle du système lors de la création et de la mise à jour de l'enregistrement, respectivement.

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