Mysql中一个表有两个字段列需要设置为默认的当前时间,在Mysql中好像不可以。是真的吗? 请给位高手发言。
2个回答
展开全部
bb timestamp NOT NULL DEFAULT now(),
可以,这些是SQL标准,mysql支持
可以,这些是SQL标准,mysql支持
追问
CREATE TABLE UCLoginInfo (
UCAccoutNO varchar (50) NOT NULL PRIMARY KEY,
LastDealTime timestamp NULL DEFAULT CURRENT_TIMESTAMP ON
UPDATE CURRENT_TIMESTAMP,
CreateTime timestamp NULL DEFAULT CURRENT_TIMESTAMP ON
UPDATE CURRENT_TIMESTAMP
)这种情况在Mysql中就不可以。但是我又有这样的需求。该怎么不,不知道有什么好的方法
追答
一个表中不能有两个字段默认值是当前时间,否则就会出错。不过其他的可以。
表:
---------------------------------
Table Create Table
------ ---------------------------------------------------------------
t1 CREATE TABLE `t1` (
`p_c` int(11) NOT NULL,
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`p_timew2` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
数据:
1 2007-10-08 11:53:35 0000-00-00 00:00:00
2 2007-10-08 12:00:37 0000-00-00 00:00:00
3 2007-10-08 12:00:37 0000-00-00 00:00:00
4 2007-10-08 12:05:19 0000-00-00 00:00:00
TIMESTAMP的变体
1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
在创建新记录和修改现有记录的时候都对这个数据列刷新
2,TIMESTAMP DEFAULT CURRENT_TIMESTAMP
在创建新记录的时候把这个字段设置为当前时间,但以后修改时,不再刷新它
3,TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
在创建新记录的时候把这个字段设置为0,以后修改时刷新它
4,TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss’ ON UPDATE CURRENT_TIMESTAMP
在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它
一般在数据库结构设计中,用datetime替换timestamp字段,用程序来实现时间的创建和修改,这样可以控制的更加准确,好处是,不至于你修改该表的任何数据,此时间会随之改变。
参考资料: http://blogold.chinaunix.net/u/25264/showart_1004841.html
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询