mysql自动存储记录创建时间戳

Goo*_*Guy 30 mysql sql

有没有什么方法mysql可以在创建时自动将时间戳存储在记录行中.我试图使用current_timestamp作为默认值的时间戳(数据类型),但后来意识到每次更新记录时都会更新.我只需要存储创建时间戳的东西.

谢谢

OMG*_*ies 66

设置DEFAULT约束以使用CURRENT_TIMESTAMP:

CREATE TABLE ...
  your_date_column DATETIME DEFAULT CURRENT_TIMESTAMP
  ...
Run Code Online (Sandbox Code Playgroud)

对于现有表,请使用ALTER TABLE语句:

ALTER TABLE your_table
ALTER COLUMN date_column SET DEFAULT CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)

除非为date_column指定值,否则缺省值将是INSERT语句的运行日期和时间. NULL和/ DEFAULT或有效值,否则使用默认约束,假设列可以为空.

  • @gaurav:不.如果你指定了额外的`ON UPDATE`子句,那么该列将在UPDATE上更新 - 否则,它将保持不变...假设你没有在UPDATE语句中指定不同的值反对专栏. (9认同)
  • 注意:自版本5.6起,CURRENT_TIMESTAMP仅适用于DATETIME列.否则,您将不得不使用TIMESTAMP类型的列. (4认同)