2009-11-20 42 views
50

türünde bir sütunu olan ve current_timestamp varsayılan değerlerine sahip bir tablo var ve her güncelleştirmede current_timestamp güncelleştirmeleri.Bir mysql tablosu sütun varsayılanlarını nasıl değiştiririm?

Bu sütunda "on update" özelliğini kaldırmak istiyorum. Değişikliği nasıl yazarım?

ALTER TABLE mytable alter column time set DEFAULT now(); 

ama bu işe yaramadı:

Aşağıdaki çalıştı.

+0

Güncelleştirmek için bir tetikleyici kullanmadığından emin misiniz? –

+0

Bu soru StackExcange'a geçirilmelidir: Veritabanı Yöneticileri –

cevap

75

Pete neredeyse doğruydu (kaçan ve alan adının ikinci kullanımı eklemek Düzenlendi) ama 'değişim' için yanlış sözdizimi kullanılır deneyin sütun adını tekrarlamanız gerekir. Ayrıca, sütun adı zamanından kaçmak için tek tırnak işareti yerine backticks kullandığınızdan emin olun, bu da zamanın mysql sütun türü olarak yorumlanmasını engeller.

CURRENT_TIMESTAMP DEFAULT değerini belirterek, MySQL artık sütunu otomatik olarak güncelleyecektir. MySQL Manual Gönderen: DEFAULT CURRENT_TIMESTAMP maddesi ile

ve hiçbir GÜNCELLEME deyimi, sütun varsayılan değeri için geçerli zaman damgası vardır ancak otomatik olarak güncellenmektedir değildir.

9

AFAIK, NOW() gibi işlevleri varsayılan olarak kullanamazsınız.

ALTER TABLE mytable CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 

Bildirimi:

ALTER TABLE `mytable` CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 

+0

Aşağıdakileri yapın: mysql> ALTER TABLE iletileri DEĞİŞTİRME zamanı TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; HATA 1064 (42000): SQL sözdiziminizde bir hata var; Satır 1 mysql'de 'NOT NULL DEFAULT CURRENT_TIMESTAMP' yakınında kullanılacak doğru sözdizimi için MySQL sunucu sürümünüze karşılık gelen kılavuzu denetleyin> ALTER TABLE iletileri DEĞİŞTİRME sütun zamanı TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; HATA 1064 (42000): SQL sözdiziminizde bir hata var; satır 1 – Tihom

+0

adresinde 'NOT NULL DEFAULT CURRENT_TIMESTAMP' yakınında kullanılacak doğru sözdizimi için MySQL sunucu sürümünüze karşılık gelen elkitabını kontrol ederek kaçış eklediğimi ve alan adının iki kez geldiğini unutmayın. – Pete

İlgili konular