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
Libérer: 2024-11-30 01:47:10
original
394 Les gens l'ont consulté

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

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

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!

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