Soru 'Dategged' için geçersiz varsayılan değer


Düzeltemediğim SQL ile ilgili aptal bir sorunum var.

ALTER TABLE `haberleri
 ADD `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT,
 PRIMARY KEY EKLE (`date Added`)

Hata:

(#1067)Invalid default value for 'dateAdded'

Birisi bana yardım edebilir mi?


76
2018-01-25 15:58


Menşei


Bu aptalca bir soru olabilir, ama neden yapıyorsun? AUTO_INCREMENT  DATETIME ? - jave.web


Cevaplar:


CURRENT_TIMESTAMP sadece kabul edilebilir TIMESTAMP alanlar. DATETIME Alanlar, boş bir varsayılan değerle ya da varsayılan değer olmadan bırakılmalıdır; varsayılan değerler, bir ifadenin sonucu değil, sabit bir değer olmalıdır.

ilgili dokümanlar: http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html

Herhangi bir yeni kayıtta "şimdi" değerini doldurmak için tabloya bir ekleme sonrası tetikleyici ayarlayarak bu konuda çalışabilirsiniz.


121
2018-01-25 16:05



Mysql 5.6.5 gibi görünüyor, DATETIME alanları ile CURRENT_TIMESTAMP kullanabilirsiniz. Görmek dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html - Frank Schwieterman
Teşekkürler Frank, dışa aktarılan bir db'yi en son xampp'den daha öncekine aktarmaya çalışırken bu problemi buldu. - The HCD
HCD, Frank ... MariaDb 10.x'ten MariaDB 5.5'e ihraç eden aynı sorunu buldu ... teşekkürler - Aukhan
Bu hata da mariadb 5.5 de olur. Mariadb 10'a yükseltin ve çözüldü. Teşekkürler Frank - Samuel Tesler


CURRENT_TIMESTAMP sürüm özel ve şu anda izin verilir DATETIME 5.6 sürümündeki sütunlar.

Görmek MySQL belgeleri.


44
2017-09-17 10:44



Emin misiniz ? Yukarıdaki hatayı 5.7.x sürümüne alıyorum - Ramesh Pareek


Ayrıca belirlerken not al DATETIME gibi DATETIME(3) veya MySQL 5.7.x'te olduğu gibi, aynı değeri CURRENT_TIMESTAMP(3). Aksi takdirde atmaya devam edecekGeçersiz varsayılan değer'.


9
2017-07-06 08:44



Bu benim için 5.7.x problemi çözdü. Datetime alanım datetime (6) olarak tanımlandı ve CURRENT_TIMESTAMP (6) kullanılarak problem çözüldü. - Brad
Bu kayda değer bir şey. - Mateus Felipe


LEMP ve CURRENT_TIMESTAMP üzerinde mysql sürüm 5.6.27 var, varsayılan değer iyi çalışıyor.


0
2017-10-06 14:39





mysql sürüm 5.5 set datetime varsayılan değeri CURRENT_TIMESTAMP olarak rapor hatası olacak 5.6 sürümüne güncelleyebilirsiniz, datetime varsayılan değerini CURRENT_TIMESTAMP olarak ayarladı


0
2017-12-08 06:55





Türü datetime'dan zaman damgasına değiştirin ve işe yarayacak! Ben mysql 5.5.56-MariaDB - MariaDB Server için aynı sorunu vardı Umarım yardımcı olabilir ... depresif olursa üzgünüm


0
2017-11-13 16:23





Bende aynı sorun vardı düzeltmeyi takiben sorunumu çözdü.

  • 'TIMESTAMP' olarak yazın.

  • UZUNLUK / DEĞER ALANINDA HERHANGİ BİR ŞEKİLDE GİRMEYİN. BU BLANKI SAKLAYIN 

  • CURRENT_TIMESTAMP Varsayılan değer olarak seç.

MySQL ver 5.5.56 kullanıyorum


0
2017-12-07 18:00