我正在寻找使用当前时间作为默认值将列添加到MySQL表的语法。
答案 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));
这将以小数秒的时间更新时间,并在上次插入或更新记录时更新。