web-dev-qa-db-ja.com

MySQL Workbench:「ON UPDATE」およびCURRENT_TIMESTAMPを設定するにはどうすればよいですか?

参照: アプリケーションまたはデータベースのタイムスタンプ列を更新しますか?

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;

このON UPDATEパーツをセットアップするために、Workbenchのどこに行くのですか?

また、データベースに保存されているすべてのタイムスタンプはUTCでなければならないというルールがあります。 CURRENT_TIMESTAMP、NOWなどをUTCにするにはどうすればよいですか?

56

MySQL Workbench 5.2.35を使用しています。テーブルの作成/変更パネルを開き、列タブに切り替えて、タイムスタンプフィールドを右クリックします。そこには、可能なdefaultおよび_on update_オプションがあります。

重要な注意:_CURRENT_TIMESTAMP_をテーブルの単一の列のみのデフォルト値または更新値として使用できます!

Sample screenshot showing the context menu

UTCの質問に関しては、これを見ることができます question 。そこに受け入れられた解決策があります。

Timestamp data type および NOW() function のMySQLリファレンスマニュアルも読むことをお勧めします。

124
melihcelik

MySQL Workbenchで行うことは次のとおりです。

データ型:TIMESTAMPデフォルト:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

7
Cantika Onies