2

我试图弄清楚在自定义 Magento 数据库表中定义 Created At 和 Updated At 字段的最佳方法是什么。

我想要以下功能。

当插入新行时,“Created At”属性自动赋予 CURRENT_TIMESTAMP 值,“Updated at”属性被分配 NULL。

更新行时,“创建时间”属性不会更改,并且“更新时间”属性会自动更新为 CURRENT_TIMESTAMP。

到目前为止,我有:

CREATE TABLE `instances` (
`instance_id` int(11) unsigned NOT NULL auto_increment,
`created_at` timestamp NOT NULL default CURRENT_TIMESTAMP,
`updated_at` timestamp NULL on update CURRENT_TIMESTAMP,
PRIMARY KEY  (`instance_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

失败:#1293 - 表定义不正确;在 DEFAULT 或 ON UPDATE 子句中只能有一个带有 CURRENT_TIMESTAMP 的 TIMESTAMP 列

我试图在这里对这篇文章进行正面和反面,但只会越来越困惑。在这里澄清将不胜感激!

多谢。

4

2 回答 2

2

此限制已在 MySQL (5.6.5) 的最新版本中删除,请参阅其他 stackoverflow 线程和答案。

于 2013-08-12T14:54:14.660 回答
1
  1. 只有 1 个带有 DEFAULT CURRENT_TIMESTAMP 的条目。这是 MySql 的事情。
  2. Magento 以其他方式设置这些字段:通过在保存几个模型之前设置这些属性。所以看看那些:
Mage_Eav_Model_Entity_Attribute_Backend_Time_Updated
Mage_Eav_Model_Entity_Attribute_Backend_Time_Created
Mage_Eav_Model_Entity_Attribute
于 2012-05-08T12:24:28.123 回答