sql >> Database >  >> RDS >> Mysql

NU() instellen als standaardwaarde voor datatype datetime?

Vanaf MySQL 5.6.5 kunt u de DATETIME type met een dynamische standaardwaarde:

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

Of combineer zelfs beide regels:

modification_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

Referentie:
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

Vóór 5.6.5 moet u de TIMESTAMP . gebruiken gegevenstype, dat automatisch wordt bijgewerkt wanneer de record wordt gewijzigd. Helaas is er echter maar één automatisch bijgewerkte TIMESTAMP veld kan per tafel bestaan.

CREATE TABLE mytable (
  mydate TIMESTAMP
)

Zie:http://dev.mysql.com/doc /refman/5.1/en/create-table.html

Als u wilt voorkomen dat MySQL de tijdstempelwaarde op UPDATE bijwerkt (zodat het alleen wordt geactiveerd op INSERT ) kunt u de definitie wijzigen in:

CREATE TABLE mytable (
  mydate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)


  1. ORACLE SQL listagg-functie

  2. Fout krijgen - ORA-01858:er is een niet-numeriek teken gevonden waar een numeriek werd verwacht

  3. Een datamodel van een bureau voor de publieke opinie

  4. ListView-besturing Drag-Drop Gebeurtenissen sorteren