Mysql中一个表有两个字段列需要设置为默认的当前时间,在Mysql中好像不可以。是真的吗? 请给位高手发言。

 我来答
理工爱好者

2011-05-25 · TA获得超过2284个赞
知道大有可为答主
回答量:5249
采纳率:97%
帮助的人:643万
展开全部
bb timestamp NOT NULL DEFAULT now(),
可以,这些是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

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ksld055
2011-05-25 · TA获得超过950个赞
知道小有建树答主
回答量:909
采纳率:100%
帮助的人:382万
展开全部

一般都是id自增,在建表的时候在id字段后面加上auto-increment
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式