Maison  >  Article  >  base de données  >  Plusieurs colonnes TIMESTAMP peuvent-elles avoir CURRENT_TIMESTAMP dans MySQL ?

Plusieurs colonnes TIMESTAMP peuvent-elles avoir CURRENT_TIMESTAMP dans MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-29 21:26:29909parcourir

Can Multiple TIMESTAMP Columns Have CURRENT_TIMESTAMP in MySQL?

MySQL CURRENT_TIMESTAMP lors de la création et de la mise à jour

Lors de la définition d'une table MySQL, il est souhaitable d'inclure des horodatages pour suivre la création et la modification des enregistrements . Cependant, une erreur peut se produire lors de la tentative de définition de deux champs TIMESTAMP avec CURRENT_TIMESTAMP par défaut ou lors de la mise à jour des valeurs.

Message d'erreur

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

Cause

Les versions MySQL antérieures à 5.6.25 permettaient uniquement de définir une seule colonne TIMESTAMP avec CURRENT_TIMESTAMP comme valeur par défaut ou lors de la mise à jour.

Solution

Dans les versions MySQL 5.6.25 et supérieures, il est possible de définir plusieurs colonnes TIMESTAMP, chacune avec son propre paramètre CURRENT_TIMESTAMP. Depuis MySQL 8.0, cette restriction a été complètement supprimée. Par conséquent, pour les versions 5.6.25 et supérieures, la définition de table suivante devrait fonctionner correctement :

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 définition créera une table avec deux champs TIMESTAMP, ts_create et ts_update, qui seront automatiquement mis à jour avec le courant horodatage 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