Rumah > pangkalan data > tutorial mysql > Mengapa Menambah Lajur Menghasilkan Ralat 'Nilai Lalai Tidak Sah untuk 'created_at'' dalam MySQL?

Mengapa Menambah Lajur Menghasilkan Ralat 'Nilai Lalai Tidak Sah untuk 'created_at'' dalam MySQL?

DDD
Lepaskan: 2024-12-02 11:48:10
asal
972 orang telah melayarinya

Why Does Adding a Column Result in an

Nilai Lalai Tidak Sah untuk Created_At

Masalah:

Apabila cuba mengubah jadual dengan menambah lajur baharu, anda akan menemui satu ralat:

ERROR 1067 (42000): Invalid default value for 'created_at'
Salin selepas log masuk

walaupun tidak mengubah suai mana-mana lajur cap masa.

Penyelesaian:

Ralat berasal daripada sql_modes. Untuk menyelesaikannya:

  1. Semak Mod SQL:
show variables like 'sql_mode' ;
Salin selepas log masuk
  1. Lumpuhkan Mod Bermasalah:

Alih keluar mod berikut daripada sql_mode:

NO_ZERO_IN_DATE
NO_ZERO_DATE
Salin selepas log masuk

Mod ini hadir secara lalai dalam versi MySQL yang lebih baharu.

Tetapan Global:

Untuk perubahan seluruh sistem, laksanakan yang berikut sebagai akar:

set global sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
Salin selepas log masuk

Tambahan Nota:

  • Lajur baharu kini boleh ditambah tanpa mencetuskan ralat.
  • Jika anda ingin menggunakan nilai lalai NOT NULL untuk created_at, anda boleh menentukannya secara eksplisit :
ALTER TABLE investments ADD bank TEXT DEFAULT NOT NULL;
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Menambah Lajur Menghasilkan Ralat 'Nilai Lalai Tidak Sah untuk 'created_at'' dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan