MySQL Workbench: как настроить «ОБНОВЛЕНИЕ»?и CURRENT_TIMESTAMP? - PullRequest
56 голосов
/ 19 ноября 2011

SEE: Обновить столбец отметки времени в приложении или базе данных?

Я пытаюсь смоделировать что-то подобное в 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;

Куда мне обратиться в Workbench для настройки этой части ОБНОВЛЕНИЕ?

Кроме того, у меня есть правило, что все метки времени, хранящиеся в базе данных, должны быть в формате UTC. Как сделать так, чтобы CURRENT_TIMESTAMP, NOW и т. Д. Были в формате UTC?

Ответы [ 3 ]

121 голосов
/ 19 ноября 2011

Я использую MySQL Workbench 5.2.35. Откройте панель создания / изменения таблицы, перейдите на вкладку столбцов, щелкните правой кнопкой мыши поле отметки времени; там вы можете увидеть возможные варианты default и on update.

Важное примечание: Вы можете использовать CURRENT_TIMESTAMP как значение по умолчанию или обновленное значение только для одного столбца в таблице!

Sample screenshot showing the context menu

Что касается вопроса о UTC, вы можете посмотреть на этот вопрос . Там есть принятое решение.

Я бы посоветовал вам также прочитать справочные руководства по MySQL для Тип данных временных отметок и NOW() Функция .

6 голосов
/ 31 октября 2016

Вот что я делаю с MySQL Workbench

Тип данных: TIMESTAMP По умолчанию: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

0 голосов
/ 19 ноября 2011

По умолчанию MySQL устанавливает для первого поля timestamp значение CURRENT_TIMESTAMP для каждого оператора UPDATE или INSERT.Я занимаюсь проектированием моей схемы таким образом, чтобы updated_at было первым timestamp полем, чтобы мне не пришлось явно указывать ее.

...