Maison >base de données >tutoriel mysql >Les tables MySQL peuvent-elles désormais avoir plusieurs colonnes TIMESTAMP avec 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!