MySQL工作台:如何设置“ON UPDATE”? 和CURRENT_TIMESTAMP?
请参阅: 更新应用程序或数据库中的时间戳列?
我试图在Workbench中build立类似的模型,但我不知道在哪里设置“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;
我在哪里可以在Workbench中设置这个ON UPDATE部分?
此外,我有一个规则,所有时间戳存储在数据库应该是UTC。 如何制作CURRENT_TIMESTAMP,现在等UTC?
我正在使用MySQL Workbench 5.2.35。 打开创build/更改表格面板,切换到列选项卡,右键单击时间戳字段; 在那里你可以看到可能的default
和on update
选项。
重要说明:您可以将CURRENT_TIMESTAMP
用作表格中的单个列的默认或更新值!
关于UTC的问题,你可以看看这个问题 。 那里有一个公认的解决scheme。
我build议你阅读MySQL的参考手册以及Timestamp数据types和NOW()
函数 。
以下是我使用MySQL Workbench所做的工作
数据types:TIMESTAMP默认值:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
默认情况下,MySQL在每个UPDATE
或INSERT
语句中将第一个timestamp
字段设置为CURRENT_TIMESTAMP
。 我以某种方式devise我的模式,以便updated_at
是第一个timestamp
字段,所以我不必明确指定它。