datetime,mysql中的时间戳字段

时间:2010-12-23 09:05:14

标签: mysql datetime

我需要确认这是正确的。我的要求是所有表格需要3个字符串:
1)创建日期行 2)日期行最后更新
3)如果行是活动的则标记。

所以我在每张桌子上都有这3个col   is_active tinyint(1)NOT NULL DEFAULT'1',
  created日期时间NOT NULL,
  updated时间戳DEFAULT CURRENT_TIMESTAMP更新CURRENT_TIMESTAMP,

我认为我不需要做任何其他事情,这些专栏可以照顾好自己吗?创建表时,is_active将始终默认为1,因此我不必触摸任何内容(如果我想将行显示为未激活,则需要稍后手动将这些值设置为0)。日期时间将始终自动设置当前日期&这个行是自己创造的,我假设?并且当更新行时,时间戳将自动更新。

我错过了一些我需要添加的内容,如触发器或任何东西,还是这样好?

1 个答案:

答案 0 :(得分:1)

您发布的任何内容都表示将自动设置created日期时间列。它没有默认值 - 您需要为它提供一个值。

你可以把它作为时间戳并给它DEFAULT CURRENT_TIMESTAMP,但是你会遇到另一个问题 - 根据MySQL docs,你只能在表中的第一个 TIMESTAMP列。

您可以在插入时自己为该列提供值,例如NOW(),或者您可以设置触发器,以便在插入该表时为您设置该值。