4

アカウントがいつ作成され、最後に変更されたかを記録する SQL テーブルを設定しようとしています。これを sql で処理したいので、php ファイルで処理する必要はありません。

users テーブルに 2 つの列があります (どちらも type ですtimestamp):

作成した

変更された

「作成」時間は決して変更せず、常に作成日を含め、ユーザー行が変更されるたびに「変更」時間を変更したいと考えています。「作成」が期待どおりに機能するようにテーブルを設定しましたが、変更を更新しようとすると:

ALTER TABLE `users` 
   CHANGE `modified` `modified` TIMESTAMP NOT NULL 
   DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP

次のエラーが表示されます。

1293 - テーブル定義が正しくありません。DEFAULT または ON UPDATE 句で CURRENT_TIMESTAMP を持つ TIMESTAMP 列は 1 つだけ存在できます

これを正しく達成するために私が何をする必要があるかについて誰かが私を助けることができますか?

4

1 に答える 1

2

mysqlではまだ不可能です。INSERTsでのみ、UPDATEsまたは両方で、実際の時間に設定できます。ただし、これらの自動 TIMESTAMP 列を 1 つのテーブルに複数含めることはできません。それが可能になりましTRIGGERsMysql 5.x

この記事を参照してください。

MySQL 5.0 の 1 つのテーブルに 2 つの自動 TIMESTAMP カラム

于 2012-02-20T01:57:13.687 に答える