Maison >base de données >tutoriel mysql >Les tables MySQL peuvent-elles désormais avoir plusieurs colonnes TIMESTAMP avec CURRENT_TIMESTAMP ?

Les tables MySQL peuvent-elles désormais avoir plusieurs colonnes TIMESTAMP avec CURRENT_TIMESTAMP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-30 01:47:10383parcourir

Can MySQL Tables Now Have Multiple TIMESTAMP Columns with CURRENT_TIMESTAMP?

Une colonne TIMESTAMP avec la limitation CURRENT_TIMESTAMP levée

Dans les versions précédentes de MySQL, une table ne pouvait avoir qu'une seule colonne TIMESTAMP avec la valeur CURRENT_TIMESTAMP dans soit la clause DEFAULT ou ON UPDATE. Tenter de créer un tableau avec plusieurs colonnes de ce type a entraîné une erreur.

La clause restrictive

La déclaration ci-dessous illustre la structure sujette aux erreurs :

CREATE TABLE `foo` (
  `ProductID` INT(10) UNSIGNED NOT NULL,
  `AddedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `UpdatedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=INNODB;

L'erreur renvoyée :

Error Code : 1293
Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

Historique Raison

Cette limitation était historiquement enracinée dans des raisons héritées du code. Cependant, elle a été levée dans les versions récentes de MySQL.

Suppression de la restriction

La restriction a été supprimée dans MySQL 5.6.5 le 10 avril 2012. Les notes de version state :

"Auparavant, au plus une colonne TIMESTAMP par table pouvait être automatiquement initialisée ou mise à jour à la date actuelle et l'heure. Cette restriction a été levée. Toute définition de colonne TIMESTAMP peut avoir n'importe quelle combinaison de clauses DEFAULT CURRENT_TIMESTAMP et ON UPDATE CURRENT_TIMESTAMP. De plus, ces clauses peuvent désormais être utilisées avec les définitions de colonne DATETIME."

Implications

Ce changement dans MySQL permet une plus grande flexibilité dans la conception des tables. Les développeurs peuvent désormais utiliser plusieurs colonnes TIMESTAMP avec des valeurs CURRENT_TIMESTAMP pour suivre les modifications dans différents aspects d'une seule entité.

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