Ve výchozím nastavení MySQL přijímá neplatné hodnoty. Můžete nastavit MySQL na přísný režim, abyste vynutili platné hodnoty. To odmítne dotaz, který neposkytuje hodnotu pro sloupec NOT NULL, a zároveň vynutí integritu u všech typů sloupců.
Aktualizace: MySQL 5.7 a vyšší mají nyní ve výchozím nastavení zapnutý přísný režim. Ve výchozím nastavení by tedy nepřijímal neplatné hodnoty jako předchozí verze.
http://dev.mysql .com/doc/refman/5.0/en/sql-mode.html#sql-mode-important
http://dev.mysql.com/doc /refman/5.0/cs/sql-mode.html#sqlmode_strict_all_tables
Edit:@Barranka a @RocketHazmat udělali dobré body v komentářích. ''
není totéž jako null, takže MySQL to umožní ve sloupci NOT NULL. V takovém případě byste se museli uchýlit ke svému kódu nebo spouštěči.
V kódu (například PHP) by to mohlo být snadné, spustit něco jako:
if (!strlen($value)) {
// Exclude value or use NULL in query
}