Nevíte někdo, proč když v MySQL nastavím sloupec nulový na not_null vrátí se mi po odeslání opět na null. A hodnota sloupce výchozí se přepíše na NULL?
Pravděpodobně používáte phpMyAdmin. Kdysi jsme tady na wz řešili podobný problém. A dospělo se, že problém dělá pravděpodobně phpmyadmin, který tuto položku nějak jinak interpetuje.
Řešením by bylo použítí SQL příkazu. Příklad: "ALTER TABLE tabulka MODIFY sloupec typ NOT NULL;"
Řeším stejný problém a ani dle příkladu podle Tomika to stále nefunguje jak bych si představoval ...
Hlásí to nějakou chybu?
Ono výše uvedený SQL příkaz také nemusí stačit. Pokud tabulka obsahuje nějaká data a uvedený sloupec obsahuje aspoň jeden NULL, pak změna typu selže, protože by sloupec nesplňoval podmínku NOT NULL.
Aby splňoval podmínku NOT NULL, tak všechny řádky musí obsahovat nějakou hodnotu. Toho lze dosáhnout i přidáním dalšího parametru a to defaultní hodnoty DEFAULT.
ALTER TABLE tabulka MODIFY sloupec typ NOT NULL DEFAULT 'neco';
Právě že nevypíše žádnou chybu, dotaz/příkaz se provede ...
Jenže při dalším náhledu na strukturu tabulky phpmyadmin zase hlásí nulový:ANO
Zkouším to na naplněné tabulce, nicméně na sloupci "PRIMARY INDEX", kde nepředpokládám nulové hodnoty, nexistenci NULL hodnod jsem si ověřoval i jednoduchým selectem.
Přidání DEFAULT hodnoty jsem už skoušel také DEFAULT se korektně nastaví nebo změní, ale parametr Nulový ne :-O což je mi divné dvojnásob
Bohužel ani strejda Google vůbec neporadil.
Nevylučuju ani problém mezi klávesnicí a židlí, ale na lokálním serveru se mi to změnit daří ...