Pertanyaan Nilai default tidak valid untuk 'dateAdded'


Saya mendapat masalah bodoh dengan SQL yang tidak bisa saya perbaiki.

ALTER TABLE `news`
 ADD `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT,
 TAMBAHKAN PRIMARY KEY (`dateAdded`)

Kesalahan:

(#1067)Invalid default value for 'dateAdded'

Bisakah seseorang membantu saya?


75
2018-01-25 15:58


asal


Jawaban:


CURRENT_TIMESTAMP hanya dapat diterima TIMESTAMP ladang. DATETIME bidang harus dibiarkan baik dengan nilai default null, atau tidak ada nilai default sama sekali - nilai default harus berupa nilai konstan, bukan hasil dari ekspresi.

dokumen yang relevan: http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html

Anda dapat mengatasi ini dengan menetapkan pemicu pasca-insert pada tabel untuk mengisi nilai "sekarang" pada setiap rekaman baru.


120
2018-01-25 16:05



CURRENT_TIMESTAMP adalah versi khusus dan sekarang diizinkan DATETIME kolom seperti versi 5.6.

Lihat Dokumen MySQL.


44
2017-09-17 10:44



Juga perhatikan ketika menentukan DATETIME sebagai DATETIME(3) atau seperti di MySQL 5.7.x, Anda juga harus menambahkan nilai yang sama untuk CURRENT_TIMESTAMP(3). Jika tidak akan terus melempar 'Nilai default tidak valid'.


9
2017-07-06 08:44



Saya memiliki versi mysql 5.6.27 pada LEMP dan CURRENT_TIMESTAMP saya sebagai nilai default berfungsi dengan baik.


0
2017-10-06 14:39



mysql versi 5.5 menetapkan nilai default datetime sebagai CURRENT_TIMESTAMP akan menjadi kesalahan laporan Anda dapat memperbarui ke versi 5.6, ini menetapkan nilai default datetime sebagai CURRENT_TIMESTAMP


0
2017-12-08 06:55



Ubah jenis dari datetime ke timestamp dan itu akan berfungsi! Saya memiliki masalah yang sama untuk mysql 5.5.56-MariaDB - Server MariaDB Semoga bisa membantu ... maaf jika terlanjur keluar


0
2017-11-13 16:23



Saya memiliki masalah yang sama, mengikuti perbaikan memecahkan masalah saya.

  • Pilih Ketik sebagai 'TIMESTAMP'

  • JANGAN MASUK APA PUN DALAM LENGTH / VALUES FIELD. TETAPKAN SESUAI 

  • Pilih CURRENT_TIMESTAMP sebagai nilai Default.

Saya menggunakan MySQL ver 5.5.56


0
2017-12-07 18:00