Standardmäßig akzeptiert MySQL ungültige Werte. Sie können MySQL in den strikten Modus versetzen, um gültige Werte zu erzwingen. Dadurch wird eine Abfrage abgelehnt, die keinen Wert für eine NOT NULL-Spalte liefert, und die Integrität aller Spaltentypen erzwungen.
Aktualisierung: MySQL 5.7 und höher haben jetzt standardmäßig den strikten Modus aktiviert. Daher akzeptiert es standardmäßig keine ungültigen Werte wie frühere Versionen.
http://dev.mysql .com/doc/refman/5.0/en/sql-mode.html#sql-mode-important
http://dev.mysql.com/doc /refman/5.0/en/sql-mode.html#sqlmode_strict_all_tables
Bearbeiten:@Barranka und @RocketHazmat haben in den Kommentaren gute Punkte gemacht. ''
ist nicht dasselbe wie null, also lässt MySQL dies in einer NOT NULL-Spalte zu. In diesem Fall müssten Sie auf Ihren Code oder einen Trigger zurückgreifen.
Im Code (z. B. PHP) könnte dies einfach genug sein und so etwas wie:
ausführenif (!strlen($value)) {
// Exclude value or use NULL in query
}