私は次のようなことを考えていました:
`post_modified` int(11) NOT NULL DEFAULT UNIX_TIMESTAMP (NOW ()) ON UPDATE UNIX_TIMESTAMP (NOW ()),
しかし、このコードは機能していません。
私は次のようなことを考えていました:
`post_modified` int(11) NOT NULL DEFAULT UNIX_TIMESTAMP (NOW ()) ON UPDATE UNIX_TIMESTAMP (NOW ()),
しかし、このコードは機能していません。
いいえ、あなたが示したように使用することはできません。
MySqlの Data Type doc から:
「デフォルト値は定数でなければなりません。関数または式にすることはできません。これは、たとえば、日付列のデフォルトを NOW() や CURRENT_DATE などの関数の値に設定できないことを意味します。例外は、CURRENT_TIMESTAMP を TIMESTAMP 列のデフォルトとして指定できることです。"
回避策については、以下の回答を参照してください。
MySQL で UNIX_TIMESTAMP デフォルトの列を作成することは可能ですか?
これが役立つことを願っています!
注: MYSQL TRIGGERのパフォーマンスについてはわかりません
これらのリンクにアクセスしてください
このためのトリガーを作成できます。
挿入用
CREATE TRIGGER {trigger_name} BEFORE INSERT ON {table_name} FOR EACH ROW SET new.{field_name} = UNIX_TIMESTAMP(NOW());
アップデート用
CREATE TRIGGER {trigger_name} BEFORE UPDATE ON {table_name} FOR EACH ROW SET new.{field_name} = UNIX_TIMESTAMP(NOW());