Berdasarkan penelitian saya, saya akan mengatakan itu bisa menjadi hal "Anda" dan "MySQL". Periksa definisi tabel Anda dengan SHOW CREATE TABLE table_name;
. Catat setiap bidang yang ditentukan dengan NOT NULL
.
Panduan Referensi MySQL 5.6:sintaks 13.2.5 INSERT menyatakan:
Ini menyiratkan bahwa tidak masalah mode SQL mana yang Anda gunakan. Jika Anda melakukan satu baris INSERT
(sesuai kode sampel Anda) dan memasukkan NULL
nilai ke dalam kolom yang didefinisikan dengan NOT NULL
, seharusnya tidak berfungsi.
Dalam napas yang sama, ironisnya, jika Anda hanya menghilangkan nilai dari daftar nilai, manual MySQL mengatakan yang berikut, dan mode SQL memang penting dalam hal ini:
Jadi, Anda tidak bisa menang!;-) Bercanda. Hal yang harus dilakukan adalah menerima bahwa NOT NULL
pada bidang tabel MySQL benar-benar berarti Saya tidak akan menerima nilai NULL untuk bidang saat melakukan satu baris INSERT
, terlepas dari mode SQL .'
Semua yang dikatakan, berikut dari manual ini juga benar:
Jadi, ambil hati. Tetapkan default Anda dalam logika bisnis (objek), dan biarkan lapisan data mengambil arah dari itu. Default basis data sepertinya ide yang bagus, tetapi jika tidak ada, apakah Anda akan melewatkannya? Jika pohon tumbang di hutan...