VOIR: Mettre à jour la colonne d'horodatage dans l'application ou la base de données?
J'essaie de modéliser quelque chose de similaire dans Workbench, mais je ne sais pas où définir la partie "ON UPDATE". Le mieux que je puisse obtenir est le suivant:
-- -----------------------------------------------------
-- Table `foo`.`test`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `foo`.`test` ;
CREATE TABLE IF NOT EXISTS `foo`.`test` (
`test_id` INT NOT NULL ,
`date_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`date_updated` TIMESTAMP NOT NULL DEFAULT 0 ,
PRIMARY KEY (`test_id`) )
ENGINE = InnoDB;
Où dois-je aller dans Workbench pour configurer cette partie ON UPDATE?
De plus, j'ai une règle selon laquelle tous les horodatages stockés dans la base de données doivent être UTC. Comment puis-je faire en sorte que CURRENT_TIMESTAMP, NOW, etc. soient UTC?
J'utilise MySQL Workbench 5.2.35. Ouvrez le panneau de création/modification de tableau, passez à l'onglet colonnes, cliquez avec le bouton droit sur le champ d'horodatage; vous pouvez y voir les options default
et on update
possibles.
Remarque importante: vous pouvez utiliser CURRENT_TIMESTAMP
Comme valeur par défaut ou mise à jour pour une seule colonne d'un tableau!
En ce qui concerne la question UTC, vous pouvez jeter un œil à ceci question . Il y a là une solution acceptée.
Je vous suggère de lire également les manuels de référence MySQL pour type de données Timestamp et NOW()
function .
Voici ce que je fais avec MySQL Workbench
Type de données: TIMESTAMP Par défaut: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP