Позовавайки се на ръководство ,
За въвеждане на данни за колона NOT NULL, която няма изрична клауза DEFAULT, ако израз INSERT или REPLACE не включва стойност за колоната или оператор UPDATE задава колоната на NULL, MySQL обработва колоната според SQL режима, който е в сила към момента:
- Ако стриктният SQL режим не е активиран, MySQL задава колоната на имплицитната стойност по подразбиране за типа данни на колоната.
- Ако строг режим е активиран, възниква грешка за транзакционните таблици и операторът се връща назад. За нетранзакционни таблици възниква
грешка, но ако това се случи за втория или следващ ред на многоредов израз, предходните редове ще бъдат вмъкнати.
Така че въпросът ви сега може да бъде какви са имплицитните стойности по подразбиране за различните типове данни в колоните? Ето ви:
Неявните настройки по подразбиране се дефинират, както следва:
- За числови типове по подразбиране е 0, с изключение на това, че за типове с цели числа или с плаваща запетая, декларирани с атрибута AUTO_INCREMENT
, по подразбиране е следващата стойност в последователността.- За типове дата и час, различни от TIMESTAMP, по подразбиране е подходящата „нула“ стойност за типа. За първата колона TIMESTAMP в таблица стойността по подразбиране е текущата дата и час. Вижте раздел 10.3, „Типове дата и час“.
- За типове низове, различни от ENUM, стойността по подразбиране е празният низ. За ENUM по подразбиране е първата стойност за изброяване.