MySQL Workbench: comment configurer "ON UPDATE"? et le TIMESTAMP ACTUEL?

VOIR: mise à Jour de la colonne timestamp dans l'Application ou Base de données?

j'essaie de modéliser quelque chose de similaire dans Workbench, mais je ne sais pas où mettre 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 ceci sur la partie UPDATE?

en outre, j'ai une règle que tous les horodateurs stockés dans la base de données devraient être UTC. Comment puis-je faire CURRENT_TIMESTAMP, NOW, etc. be UTC?

48
demandé sur Community 2011-11-19 16:50:56

3 réponses

j'utilise MySQL Workbench 5.2.35. Ouvrez le panneau Créer/modifier la table, passez à l'onglet colonnes, faites un clic droit sur le champ timestamp; là vous pouvez voir les options possibles default et on update .

NOTE IMPORTANTE: Vous pouvez utiliser CURRENT_TIMESTAMP comme valeur par défaut ou mise à jour pour une seule colonne dans une table!

Sample screenshot showing the context menu

en ce qui concerne la question UTC, Vous pouvez jeter un oeil à ce question . Il y a là une solution acceptée.

je vous suggérerais de lire aussi les manuels de référence MySQL pour Timestamp type de données et NOW() fonction .

99
répondu melihcelik 2017-05-23 12:26:14

voici ce que je fais avec MySQL Workbench

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

4
répondu Cantika Onies 2016-10-31 20:08:50

par défaut MySQL définit le premier champ timestamp à CURRENT_TIMESTAMP sur chaque déclaration UPDATE ou INSERT . Je vais concevoir mon schéma d'une manière telle que updated_at est le premier champ timestamp , de sorte que je n'ai pas à le spécifier explicitement.

-1
répondu Ashwini Dhekane 2011-11-19 15:00:21