我如何需要mysql字段?

Xi *_*Vix 6 mysql field

我刚刚发现NOT NULL不需要字段.

创建mysql表时,如何创建一个不能包含null或空白的字段(必须包含某些内容)?

Dev*_*von 5

默认情况下,MySQL 接受无效值。您可以将 MySQL 设置为严格模式以强制使用有效值。这将拒绝不为 NOT NULL 列提供值的查询,并在所有类型的列上强制执行完整性。


更新: MySQL 5.7 及更高版本现在默认启用严格模式。因此,默认情况下它不会像以前的版本一样接受无效值。


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

编辑:@Barranka 和@RocketHazmat 在评论中提出了很好的观点。 ''与 null 不同,因此 MySQL 将允许在 NOT NULL 列中使用它。在这种情况下,您将不得不求助于您的代码或触发器。

在代码中(例如 PHP),这可能很简单,运行如下:

if (!strlen($value)) { 
    // Exclude value or use NULL in query
}
Run Code Online (Sandbox Code Playgroud)