2009-05-03 27 views
34

Olay zamanlarını hatırlamak için MySQL 5.x (PHP ile) zaman damgasını kullanıyorum. Geliştirme sırasında tabloyu, tüm sütunlarda bir şeyi değiştiren bir sorguyla güncellemeliydim. Zaman damgası daha sonra geçerli saate sıfırlandı.Yalnızca MySQL zaman damgası oluştur

nasıl sadece ekler üzerinde değil, güncellemeler veya değiştirme zaman damgası değişiklik yapabilir?

+1

bu Google'dan gelebilecek başka bir geç cevap: Eğer el veritabanınızda düzenlemeleri yaptığınızda bir ZAMAN kullanırsanız; veya birden fazla TIMESTAMP sütununuz varsa ve hepsine dokunmak istemiyorsanız; MySQL kılavuzu, sütunu kendisine atamak için yazıyor. Sütunu geçerli değerine (örneğin, "updated_on = updated_on") ayarladığınızdan, UPDATE tarafından değiştirilmeyecek. –

cevap

65

Here's all you need to know. Kısacası, olsa da, ben bu yeter bence: Burada for time-stamp

ALTER TABLE `mytable` 
CHANGE `mydatefield` `mydatefield` 
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 
+0

Teşekkürler! Burada "NULL" bölümü gerekli değil bence. –

0

Sen bu alan için bir default value kullanabilir ve ekleme veya güncelleme sorguda dahil değildir.

0
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP 

Çok iyi dokümantasyon.

+0

Bir şeyleri kaçırıyor olabilirim ama tablom bu şekilde tanımlandı (ve), ama yine de tarihler değişti. Mysql'den şunu açıkla: 'pur_time', 'timestamp', 'NO', '', CURRENT_TIMESTAMP ',' ' – Nir

1

Ben o sütun için TARİH kullanmanızı öneririz. Kayıt güncellendiğinde değişmez. rekor genelde bunu kullanmaktan kaçındıkları ancak dokundu son ne zaman

Benim için, izleme için ZAMAN kullanın.

İlgili konular