2

カスタム Magento データベース テーブルの [Created At] フィールドと [Updated At] フィールドを定義する最良の方法を見つけようとしています。

以下の機能が欲しいです。

新しい行が挿入されると、「Created At」属性には自動的に CURRENT_TIMESTAMP の値が与えられ、「Updated at」属性には NULL が割り当てられます。

行が更新されると、「Created At」属性は変更されず、「Updated at」属性は自動的に 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 列は 1 つだけ存在できます

ここでこの記事の頭と尻尾を作ろうとしていますが、ますます混乱しています. ここで明確化していただければ幸いです。

どうもありがとう。

4

2 に答える 2

2

この制限は、MySQL の最近のリリース (5.6.5) で削除されました。回答のある他のスタック オーバーフロー スレッドを参照してください。

于 2013-08-12T14:54:14.660 に答える
1
  1. DEFAULT CURRENT_TIMESTAMP を持つエントリは 1 つだけです。これは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 に答える