当前位置: 首页 > 面试题库 >

一个带有多个TIMESTAMP列的Mysql表

索嘉胜
2023-03-14
问题内容

我想要一个有两TIMESTAMP列的表。一栏用于记录的创建时间,另一栏用于记录的修改时间。我希望这些值由数据库处理。我不想让我的应用程序层考虑一下。

我知道,如果您有一个TIMESTAMP带有DEFAULT CURRENT_TIMESTAMP或的列,ON UPDATE CURRENT_TIMESTAMP那么您将无法拥有另一个TIMESTAMP列。您可以使用,DATETIME但没有办法在触发器之外默认它,据我所知。

我发现您可以具有多个TIMESTAMP列,方法是将每个列不带DEFAULT或保留,ON UPDATENULL在创建记录时插入,以使每个列具有当前时间戳。从这一点开始,第一列将自动更新。

这个效果非常好,但是给我一种有趣的感觉。这样可能是一个错误,并且可以随时对其进行修补。如果这是应该工作的方式,那就这样吧。我会很高兴地继续前进。谁能告诉我这是最好的方法还是应该使用触发器?


问题答案:

它记录在MySQL文档中:

另外, 您可以通过为它分配一个NULL值来将任何TIMESTAMP列初始化或更新为当前日期和时间
,除非已使用NULL属性将其定义为允许NULL值。

http://dev.mysql.com/doc/refman/5.0/en/timestamp-
initialization.html



 类似资料:
  • 问题内容: 我的桌子上有40多个列,我还需要添加一些其他字段,例如当前的城市,家乡,学校,工作,大学,拼贴画。 对于作为共同朋友(与其他用户朋友一起加入朋友表以查看共同朋友)并且未被阻止并且还尚未与该用户成为朋友的许多匹配用户,将提取这些用户数据。 上面的请求有点复杂,所以我认为将额外的数据放在同一用户表中以进行快速访问是个好主意,而不是向该表中添加更多的联接,这将使查询速度变慢。但是我想得到你的

  • 问题内容: 为什么在DEFAULT或ON UPDATE子句中只能有一个带有CURRENT_TIMESTAMP的TIMESTAMP列? 导致的错误: 错误代码:1293 表定义不正确;DEFAULT或ON UPDATE子句中只能有一个带有CURRENT_TIMESTAMP的TIMESTAMP列 问题答案: 仅由于历史,代码遗留原因,此限制在MySQL的最新版本中已解除: MySQL 5.6.5的更改

  • 我正在尝试将所有MySQL连接从旧的MySQL_查询切换到PDO。我试图使用不同的数组更新MySQL表的多个行和列,收到以下错误: [42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取正确的语法,以便在第1行中使用接近(accnt、car、radio、misc)值('admin'、'300.00'、'400.00'、'10.00'),其中

  • 问题内容: 因此,这更多是一个设计问题。 我有一个主键(例如用户的ID),并且有大量与该用户相关联的信息。 我应该根据信息将多个表细分为几类,还是只有一个表包含许多列? 我过去这样做的方法是拥有多个表,例如,一个表用于应用程序使用情况数据,一个表用于配置文件信息,一个表用于后端令牌等,以使事情看起来井井有条。 最近有人告诉我,最好不要那样做,有一个包含很多列的表也可以。关键是,所有这些列都具有相同

  • 问题内容: 我们都知道python的 句法。 但是,列表理解的 AST表示可以容纳多个’if’表达式: 有人可以给我一个python代码示例,该示例会生成带有多个“ if”表达式的AST吗? 问题答案: 只需将它们一个接一个地堆叠: 产生介于11和49之间(含)的整数。

  • 我有两个表用于我的在线订单:product\u items 产品项包含销售价格、数量和成本价格。订单表包括成本、装运和货币 我想获得所有订单(按货币分组)的所有销售价格(*数量)和成本价格(*数量)以及成本装运的总和 问题是,当我将成本加起来时,订单中每个项目的成本加起来(因为它们是合并的) 因此,如果订单1有2个项目,运费为10欧元,那么它将退回20欧元。 如果我不加运费,那么我只得到最后一个值