Maison > base de données > tutoriel mysql > le corps du texte

Les tables MySQL peuvent-elles avoir plus d'une colonne CURRENT_TIMESTAMP ?

Mary-Kate Olsen
Libérer: 2024-10-30 11:31:03
original
840 Les gens l'ont consulté

Can MySQL tables have more than one CURRENT_TIMESTAMP column?

Surmonter la limitation de plusieurs colonnes CURRENT_TIMESTAMP dans MySQL

Il est souvent souhaitable de suivre à la fois les horodatages de création et de mise à jour des données dans les tables de base de données . Dans MySQL, le mot-clé CURRENT_TIMESTAMP peut être utilisé pour remplir automatiquement une colonne d'horodatage avec la date et l'heure actuelles. Cependant, MySQL a une restriction selon laquelle une seule colonne CURRENT_TIMESTAMP peut être spécifiée dans l'instruction CREATE d'une table.

Résolution de l'erreur

L'erreur générée lors de la tentative de création d'une table avec plusieurs colonnes CURRENT_TIMESTAMP est :

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

Cette erreur indique que MySQL est incapable de traiter la définition de la table car elle viole la restriction sur plusieurs colonnes CURRENT_TIMESTAMP.

Solution

Pour surmonter cette limitation, une version plus récente de MySQL (5.6.25 ou ultérieure) peut être utilisée. Dans MySQL 5.6.25 et versions ultérieures, la restriction sur plusieurs colonnes CURRENT_TIMESTAMP a été supprimée. Cela vous permet de définir une table avec plusieurs colonnes TIMESTAMP qui sont automatiquement mises à jour avec la date et l'heure actuelles.

Par exemple, la définition de table suivante est valide dans MySQL 5.6.25 et versions ultérieures :

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
);
Copier après la connexion

Dans cette définition de table, les colonnes ts_create et ts_update sont des colonnes TIMESTAMP avec CURRENT_TIMESTAMP défini comme valeur par défaut pour les opérations d'insertion et de mise à jour, respectivement. Cela garantit que les horodatages sont automatiquement mis à jour avec la date et l'heure actuelles lorsque les enregistrements sont créés ou 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!