Gestion de plusieurs colonnes TIMESTAMP avec CURRENT_TIMESTAMP
Dans MySQL, définir plusieurs colonnes TIMESTAMP avec les valeurs par défaut CURRENT_TIMESTAMP peut conduire à l'erreur « Définition de table incorrecte ; il ne peut y avoir qu'une seule colonne TIMESTAMP avec CURRENT_TIMESTAMP dans DEFAULT ou ON UPDATE." Pour surmonter cette limitation, envisagez l'approche suivante dans les éditions récentes de MySQL (par exemple, 5.6.25) :
Solution :
Modifiez la définition de la table comme suit :
<code class="sql">CREATE TABLE `msgs` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `msg` VARCHAR(256), `ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `ts_update` TIMESTAMP NOT NULL, CONSTRAINT UPDATE_ON_CHANGE_ts_update FOREIGN KEY (`ts_update`) REFERENCES `msgs` (`ts_create`) ON DELETE SET NULL ON UPDATE CURRENT_TIMESTAMP )</code>
Dans ce schéma modifié :
Cette approche vous permet de conserver le comportement souhaité de suivi de la création d'enregistrements et des horodatages de mise à jour tout en évitant l'erreur MySQL.
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!