"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Quelles ont été les restrictions sur l'utilisation de Current_timestamp avec des colonnes horodatotes dans MySQL avant la version 5.6.5?

Quelles ont été les restrictions sur l'utilisation de Current_timestamp avec des colonnes horodatotes dans MySQL avant la version 5.6.5?

Publié le 2025-02-04
Parcourir:501

What Were the Restrictions on Using CURRENT_TIMESTAMP with TIMESTAMP Columns in MySQL Before Version 5.6.5?

Restrictions sur les colonnes horodat était une restriction qui limitait une table pour avoir une seule colonne d'horodatage avec soit un current_timestamp par défaut ou sur la clause de mise à jour Current_timestamp. Cette limitation s'est étendue aux entiers INT, BigInt et SmallInt lorsqu'ils ont été initialement introduits en 2008.

Cette limitation provenait de problèmes d'implémentation hérités qui ont nécessité une implémentation spécifique pour la fonctionnalité actuelle_timestamp. Message et problèmes connexes

Par exemple, considérez la définition de la table suivante, qui tente de définir deux colonnes d'horodatage avec la valeur actuelle_timestamp:

créer le tableau `foo` ( `ProductId` int (10) non signé pas nul, `Ajout à l'horodatage 'non null par défaut current_timestamp, `Times à jour 'Timestamp non null par défaut actuel_timestamp sur la mise à jour actuel_timestamp ) Moteur = innodb;

Cette définition entraînerait l'erreur suivante:

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;
Définition de table incorrecte; Il ne peut y avoir qu'une seule colonne d'horodatage avec

current_timestamp en défaut ou sur

Clause de mise à jour pre>


Cette erreur a indiqué que la définition du tableau a violé la restriction susmentionnée.

Suppression de la restriction

Malgré le fondement technique de cette limitation, l'équipe MySQL a reconnu son inconvénient. Par la suite, dans MySQL 5.6.5 (publié le 10 avril 2012), la restriction a été levée.

Le journal de modification de cette mise à jour indiquée:

précédemment, au plus une colonne d'horodatage par table pourrait être automatiquement initialisé ou mis à jour à la date et à l'heure actuelles. Cette restriction a été levée. Toute définition de la colonne d'horodatage peut avoir n'importe quelle combinaison de Current_timestamp par défaut et sur les clauses Current_timestamp de mise à jour. De plus, ces clauses peuvent désormais être utilisées avec des définitions de colonnes DateTime.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3