В MySQL всеки тип колона има "неявно подразбиране " стойност .
Ако колона NOT NULL е добавена към таблица и не е посочена изрична стойност по подразбиране, неявната стойност по подразбиране се използва за попълване на данните за новата колона. Подобни правила се прилагат, когато е посочена стойността ПО ПОДРАЗБИРАНЕ.
Като такъв, оригиналният DDL дава същите резултати като:
-- After this, data will be the same, but schema has an EXPLICIT DEFAULT
ALTER TABLE t ADD c varchar(10) NOT NULL DEFAULT ''
-- Now we're back to the IMPLICIT DEFAULT (MySQL stores NULL internally)
ALTER TABLE t ALTER c DROP DEFAULT
Настройките на "строгия" режим засягат DML изразите, разчитащи на стойности по подразбиране, но не засягат имплицитното използване по подразбиране, когато колоната се добави.
Ето sqlfiddle "доказателство" че строг режим не се прилага за оператора ALTER TABLE .. ADD.
Това е функция на MySQL. Други машини, като SQL Server, изискват изрично ограничение DEFAULT (или колона NULL) за такива промени в схемата.