Maison > Article > base de données > Plusieurs colonnes TIMESTAMP peuvent-elles avoir CURRENT_TIMESTAMP dans 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!