添加一个以当前时间为默认值的新列

Adding a new column with the current time as a default value

我正在寻找将当前时间作为默认值的列添加到 MySQL table 的语法。

重要编辑:MySQL 5.6.5[=23= 以来,现在可以使用 DATETIME 字段实现此目的],看看下面的other post...

自 MySQL 5.6.5
以来,现在可以使用 DATETIME 字段实现此目的 但是你可以用 TIMESTAMP 来做到这一点:

 create table test (str varchar(32), ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP)

您可以指定一个 default 子句:

ALTER TABLE mytable ADD COLUMN (mytimestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

我认为这些sql对你有用。

create table test (column_name varchar(32), time_column TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

mysql> insert into test (column_name) values ("demo");
Query OK, 1 row affected (0.00 sec)

mysql> select column_name as name, time_column as ts from  test;
+------+---------------------+
| name | ts                  |
+------+---------------------+
| demo | 2014-07-31 15:42:52 | 
+------+---------------------+

集合中有 1 行(0.00 秒)

谢谢。

虽然这么多人提供了解决方案,但这只是为了补充更多信息-

如果只想在行插入时插入当前时间戳-

    ALTER TABLE mytable ADD mytimestampcol TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

如果您还希望在更新此行时更新此列,请使用此-

    ALTER TABLE mytable ADD mytimestampcol TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
create table test (col1 varchar(10), lastaccessdate TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6));

这将及时更新时间的小数秒,并在最后一次插入或更新记录时更新。