Rumah > pangkalan data > tutorial mysql > Mengapa Saya Mendapat 'ERROR 1067 (42000): Nilai Lalai Tidak Sah untuk 'created_at'' Apabila Menambah Lajur dalam MySQL?

Mengapa Saya Mendapat 'ERROR 1067 (42000): Nilai Lalai Tidak Sah untuk 'created_at'' Apabila Menambah Lajur dalam MySQL?

Barbara Streisand
Lepaskan: 2024-12-11 03:50:10
asal
716 orang telah melayarinya

Why Am I Getting

"RALAT 1067 (42000): Nilai Lalai Tidak Sah untuk 'created_at'" Diterangkan

Apabila cuba mengubah suai jadual dengan menambah yang baharu lajur, anda mungkin menghadapi ralat yang menyatakan: "ERROR 1067 (42000): Nilai lalai tidak sah untuk 'created_at'." Ralat ini kelihatan berlawanan dengan intuisi kerana anda tidak mengubah lajur 'created_at' itu sendiri.

Punca Punca

Isu ini berpunca daripada tetapan konfigurasi MySQL yang dikenali sebagai mod SQL. Khususnya, mod SQL "NO_ZERO_IN_DATE" dan "NO_ZERO_DATE". Mod ini mengehadkan nilai tarikh lalai dan cap masa untuk memasukkan kedua-dua komponen tarikh dan masa, tidak membenarkan nilai dengan komponen masa '00:00:00'.

Apabila anda mencipta jadual baharu, ia mewarisi mod SQL aktif pada masa penciptaan. Dalam kes di mana mod SQL ini didayakan, ia memberi kesan kepada nilai lalai untuk lajur cap masa seperti 'created_at'. Menambah lajur baharu pada jadual dengan mod SQL ini mengaktifkan percubaan untuk mengatasi nilai lalai sedia ada untuk 'created_at', yang tidak dibenarkan.

Resolusi

Untuk menyelesaikan isu ini, anda boleh mengenal pasti mod SQL aktif dengan menjalankan arahan:

show variables like 'sql_mode' ; 
Salin selepas log masuk

Jika Mod SQL "NO_ZERO_IN_DATE" dan "NO_ZERO_DATE" ada, anda boleh melumpuhkannya dengan menetapkan mod SQL untuk mengalih keluar sekatan ini. Anda boleh melakukan ini secara global sebagai pengguna root dengan arahan:

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

Selepas membuat perubahan yang diperlukan pada mod SQL, anda sepatutnya boleh menambah lajur baharu tanpa menghadapi ralat.

Atas ialah kandungan terperinci Mengapa Saya Mendapat 'ERROR 1067 (42000): Nilai Lalai Tidak Sah untuk 'created_at'' Apabila Menambah Lajur 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan