MySQL memperlakukan timestamp
dengan cara khusus, yang agak sulit ditemukan di dokumentasi
ketika Anda tidak tahu apa yang Anda cari:
Itu berarti timestamp not null
kolom akan mendapatkan nilai default implisit '0000-00-00 00:00:00'
, yang tidak diperbolehkan dalam kombinasi dengan NO ZERO DATE
dan ketat
mode sql (yang secara default diaktifkan di MySQL 5.7) dan menghasilkan kesalahan Anda.
Untuk mengatasi masalah Anda, aktifkan opsi --explicit_defaults_for_timestamp
. Ini memperlakukan timestamp
kolom seperti yang Anda harapkan (dan akan menjadi perilaku default di beberapa rilis MySQL di masa mendatang), atau biarkan mereka menjadi null
.