Opierając się na moich badaniach, powiedziałbym, że może to być zarówno kwestia „ty”, jak i „MySQL”. Sprawdź definicje tabeli za pomocą SHOW CREATE TABLE table_name;
. Zanotuj wszystkie pola zdefiniowane za pomocą NOT NULL
.
Podręcznik MySQL 5.6 Reference:13.2.5 Składnia INSERT stany:
Oznaczałoby to, że nie ma znaczenia, jakiego trybu SQL używasz. Jeśli robisz pojedynczy wiersz INSERT
(zgodnie z przykładowym kodem) i wstawienie NULL
wartość do kolumny zdefiniowanej za pomocą NOT NULL
, to nie powinno działać.
Jak na ironię, jednym tchem, gdybyś po prostu pominął wartość z listy wartości, podręcznik MySQL mówi, co następuje, a tryb SQL ma znaczenie w tym przypadku:
Dlatego nie możesz wygrać!;-) Żartuję. Należy zaakceptować, że NOT NULL
na polu tabeli MySQL naprawdę oznacza, że nie zaakceptuję wartości NULL dla pola podczas wykonywania pojedynczego wiersza INSERT
, niezależnie od trybu SQL ”.
Biorąc to wszystko pod uwagę, poniższe informacje z instrukcji są również prawdziwe:
Więc nabierz otuchy. Ustaw wartości domyślne w logice biznesowej (obiekty) i pozwól warstwie danych przyjąć kierunek od tego. Domyślne ustawienia bazy danych wydają się dobrym pomysłem, ale gdyby nie istniały, czy byś ich nie zauważył? Jeśli drzewo spadnie w lesie...