添加一个以当前时间为默认值的新列
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));
这将及时更新时间的小数秒,并在最后一次插入或更新记录时更新。
我正在寻找将当前时间作为默认值的列添加到 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));
这将及时更新时间的小数秒,并在最后一次插入或更新记录时更新。