sql >> Databáze >  >> RDS >> Mysql

Nastavit NOW() jako výchozí hodnotu pro datový typ datetime?

Od MySQL 5.6.5 můžete použít DATETIME zadejte s dynamickou výchozí hodnotou:

CREATE TABLE foo (
    creation_time      DATETIME DEFAULT   CURRENT_TIMESTAMP,
    modification_time  DATETIME ON UPDATE CURRENT_TIMESTAMP
)

Nebo dokonce obě pravidla zkombinujte:

modification_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

Reference:
http://dev.mysql .com/doc/refman/5.7/en/timestamp-initialization.html
http://optimize -this.blogspot.com/2012/04/datetime-default-now-finally-available.html

Před verzí 5.6.5 musíte používat TIMESTAMP datový typ, který se automaticky aktualizuje při každé změně záznamu. Bohužel se však automaticky aktualizoval pouze jeden TIMESTAMP pole může existovat v tabulce.

CREATE TABLE mytable (
  mydate TIMESTAMP
)

Viz:http://dev.mysql.com/doc /refman/5.1/cs/create-table.html

Pokud chcete zabránit MySQL v aktualizaci hodnoty časového razítka na UPDATE (takže se spouští pouze při INSERT ) můžete změnit definici na:

CREATE TABLE mytable (
  mydate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)


  1. Kroky pro instalaci Mysql56 na linux

  2. Správný způsob implementace jedinečného omezení, které umožňuje více hodnot NULL v SQL Server

  3. MySQL NENÍ V dotazu

  4. SQL INSERT INTO z více tabulek