使用当前时间添加新列作为默认值

时间:2015-07-31 10:08:03

标签: mysql sql timestamp ddl

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

5 个答案:

答案 0 :(得分:5)

重要编辑:现在可以通过 MySQL 5.6.5 DATETIME字段来实现这一目标,请查看other post下面...

自MySQL 5.6.5起,现在可以使用DATETIME字段实现此目的 但你可以用TIMESTAMP

来做到这一点
 create table test (str varchar(32), ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP)

答案 1 :(得分:3)

您可以指定default子句:

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

答案 2 :(得分:3)

即使有这么多人提供了解决方案,但这只是为了增加更多信息 -

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

ALTER TABLE mytable ADD mytimestampcol TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

如果您还希望此列更新,如果此行有任何更新,请使用此 -

ALTER TABLE mytable ADD mytimestampcol TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

答案 3 :(得分:0)

我认为这些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秒)

谢谢。

答案 4 :(得分:0)

create table test (col1 varchar(10), lastaccessdate TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6));

这将以小数秒的时间更新时间,并在上次插入或更新记录时更新。