2012-03-23 5 views
0

これが可能かどうかはわかりませんが、 "maintenance"フィールドを持つゴルフコースのテーブルがあります。合計102のゴルフコース。最後のデータベースフィールドの更新日を表示しますか? (php、mysql)

「メンテナンス」フィールドが更新された102個のゴルフコースの最新の日付を表示したいと思います。

もちろん、私はデータベースにフィールドを作成し、そこに手動で日付と時刻を保存することができましたが、mysqlデータベースがいつでもそれを追跡しているかどうか確認したいのですか?

ご意見、ご感想をお寄せください。ありがとう!

+0

メンテナンス分野でどのようなデータですか? – liquorvicar

+3

'updated_at'' timestamp'フィールドを追加して、行が更新されたときにフィールドのデフォルト値を更新するようにしました。さもなければあなたのデータベースはそれを追跡しません。 – mikelbring

+0

私は通常、私が似たような状況にあるときにフィールドを作成します。タイムスタンプを更新せずに更新する必要がある場合は、手動で簡単に調整することができます。 –

答えて

0

1つの方法は、自動更新last_updatedフィールドを追加することです。ただし、ここでの欠点は、maintenanceフィールドだけでなく、そのレコードののいずれかのフィールドが更新されると更新されることです。あなたが述べたように

CREATE TABLE `golf_courses` (
    `id` int UNSIGNED NULL AUTO_INCREMENT , 
    `maintenance` text NULL , 
    `last_maintenance` timestamp NULL ON UPDATE CURRENT_TIMESTAMP , 
    PRIMARY KEY (`id`) 
); 

別の解決策は、もちろん、手動で最後のメンテナンスの時間を記録するには:

UPDATE 
    `golf_courses` AS `g` 
SET 
    `g`.`maintenance` = 'new maintenance value', 
    `g`.`last_maintenance` = NOW(); 
関連する問題