在MySQL表中,我们不能有2列类型的时间戳,默认值是current_timestamp。
无论如何,在同一个表中有2个或更多列,默认值是当前时间。这可以在Postgres中轻松完成,使用now()。
非常感谢。
答案 0 :(得分:2)
如果timestamp列定义为NOT NULL
如果为其分配值NULL
CREATE TABLE `t1` (
`name` varchar(100) DEFAULT NULL,
`created` timestamp NOT NULL DEFAULT 0,
`updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
INSERT INTO `t1` SET name='abc', created=null;
mysql> select * from t1;
+------+---------------------+---------------------+
| name | created | updated |
+------+---------------------+---------------------+
| abc | 2013-10-04 10:48:03 | 2013-10-04 10:48:03 |
+------+---------------------+---------------------+
UPDATE `t1` SET name='abc2' WHERE name = 'abc';
mysql> select * from t1;
+------+---------------------+---------------------+
| name | created | updated |
+------+---------------------+---------------------+
| abc2 | 2013-10-04 10:48:03 | 2013-10-04 11:42:04 |
+------+---------------------+---------------------+
答案 1 :(得分:0)
不确定这是否可行,但可能使FieldA默认为current_timestamp,并且FieldB默认为FieldA(如果需要公式,则为FieldA + 0天)。
Create Table Tbl1
(
...
, TS1 TimeStamp Default Current_TimeStamp
, TS2 TimeStamp Default TS1
...
);
答案 2 :(得分:0)
看来这个页面指的是同一个问题,这是MySQL中一个众所周知的错误 看看它是否有帮助 MySQL two column timestamp default NOW value ERROR 1067