web-dev-qa-db-fra.com

MySQL Workbench: comment configurer "ON UPDATE" et CURRENT_TIMESTAMP?

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?

56

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!

Sample screenshot showing the context menu

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 .

124
melihcelik

Voici ce que je fais avec MySQL Workbench

Type de données: TIMESTAMP Par défaut: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

7
Cantika Onies