sql >> Database teknologi >  >> RDS >> Mysql

Sæt NOW() som standardværdi for datetime datatype?

Fra og med MySQL 5.6.5 kan du bruge DATETIME skriv med en dynamisk standardværdi:

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

Eller endda kombinere begge regler:

modification_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

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

Før 5.6.5 skal du bruge TIMESTAMP datatype, som automatisk opdateres, hver gang posten ændres. Desværre er der dog kun én automatisk opdateret TIMESTAMP felt kan eksistere pr. tabel.

CREATE TABLE mytable (
  mydate TIMESTAMP
)

Se:http://dev.mysql.com/doc /refman/5.1/da/create-table.html

Hvis du vil forhindre MySQL i at opdatere tidsstempelværdien på UPDATE (så den kun udløses på INSERT ) kan du ændre definitionen til:

CREATE TABLE mytable (
  mydate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)


  1. Rails-rapporter kan ikke finde en kolonne, der er der

  2. Oracle GROUP_CONCAT() ækvivalent

  3. Hvordan bruger man eksisterende Oracle-sekvens til at generere id i dvale?

  4. T-SQL Dynamic SQL og Temp-tabeller