I MySQL har hver kolonnetype en "implicit standard " værdi .
Hvis en IKKE NULL kolonne er føjes til en tabel , og der ikke er angivet nogen eksplicit DEFAULT, bruges den implicitte standardværdi til at udfylde de nye kolonnedata. Lignende regler gælder, når DEFAULT-værdien er angivet.
Som sådan producerer den originale DDL de samme resultater som:
-- 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
Indstillingerne for "streng" tilstand påvirker DML-sætninger, der er afhængige af standardværdier, men påvirker ikke den implicitte standardbrug, når kolonnen tilføjes.
Her er et sqlfiddle-"bevis" at streng tilstand ikke gælder for ALTER TABLE .. ADD-sætningen.
Dette er en MySQL-funktion. Andre motorer, såsom SQL Server, kræver en eksplicit DEFAULT (eller NULL kolonne) begrænsning for sådanne skemaændringer.