MySQL Workbench:如何设置"ON UPDATE"?和CURRENT_TIMESTAMP?

Sta*_*bie 56 mysql timestamp utc mysql-workbench

请参阅:更新应用程序或数据库中的时间戳列?

我正在尝试在Workbench中对类似的东西进行建模,但我不知道在哪里设置"ON UPDATE"部分.我能得到的最好的是以下内容:

-- -----------------------------------------------------
-- 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;
Run Code Online (Sandbox Code Playgroud)

我在哪里进入Workbench来设置这个ON UPDATE部分?

另外,我有一个规则,即存储在数据库中的所有时间戳都应该是UTC.如何让CURRENT_TIMESTAMP,NOW等成为UTC?

mel*_*lik 125

我正在使用MySQL Workbench 5.2.35.打开create/alter table面板,切换到columns选项卡,右键单击timestamp字段; 那里你可以看到可能defaulton update选项.

重要说明:您可以CURRENT_TIMESTAMP仅对表中的单个列使用默认值或更新值!

显示上下文菜单的示例屏幕截图

关于UTC问题,您可以查看此问题.那里有一个公认的解决方案.

我建议你阅读MySQL参考手册以及Timestamp数据类型NOW()功能.

  • 一个小附录:对我来说,在从 UI (Workbench 6.0.8) 自动更新之前,我必须指定 Not Null `NN` (2认同)

小智 8

这是我用MySQL Workbench做的

数据类型:TIMESTAMP默认值:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP