Czy w bazach MySQL typy liczbowe INT (oraz DECIMAL) nie mogą przyjmować wartości NULL?
Nie chodzi tu o definiowane kolumn w tabeli przy zakładaniu bazy, tylko o zapisywanie wartości z formularza do bazy.
Opis problemu:
Wprowadzam dane do formularza, w określone pole nie wprowadzam żadnej wartości, przekazywana zmienna $_POST['okreslonepole'] jest pusta. Natomiast po zapisie danych w odpowiedniej kolumnie bazy danych zamiast NULL znajduje się 0. Czyli brak danych jest zamieniany na 0. Kolumna ta nie ma atrybutu NOT NULL i poziomu phpMyAdmin można jej przypisać wartość NULL.
Dla mnie, w tym przypadku, to poważny problem, ponieważ 0 to określona wartość, a ja potrzebuję mieć możliwość zapisania stanów:
- brak wartości (czyli NULL),
- jakaś wartość liczbowa (w tym wartość 0).
EDYCJA: sedno problemu
Następujące polecenie SQL:
INSERT INTO nazwatabeli SET kolumna='';
wstawia do wskazanej kolumny tabeli wartość 0 zamiast wartości pustej NULL, w kontekście tego mam pytanie:
Czy w bazach MySQL typy liczbowe INT (oraz DECIMAL), wprowadzane za pomocą INSERT, nie mogą przyjmować wartości NULL?
Dziwnie to działa, przecież 0 to taka sama wartość liczbowa, jak każda inna, a SQL powinno zamieniać wartość niezdefiniowaną na NULL.