MySQL可以区分NULL和“”(空字符串)

时间:2012-12-27 07:50:32

标签: mysql validation

我在字段NOT NULL中设置默认值。 sql如下。

insert into table_name () values ()

我预计这个SQL应该被MySQL拒绝,因为字段限制了NULL。 但是,该字段的值为“”(空字符串)。

然后,我尝试了另一个sql。

insert into table_name (name) values (NULL)

由于此sql被拒绝,因此未插入任何值。

MySQL似乎区分了NULL和“”。我是否必须避免使用诸如“values()”之类的第一个SQL?

2 个答案:

答案 0 :(得分:1)

对于一个好的做法,总是使列不为空,并在创建表时设置默认值。

如果您未提供值,则在插入时,将为该列分配默认值。

答案 1 :(得分:0)

  

我是否必须在设置为NOT NULL的字段中设置默认值?

如果您正在执行INSERT,其中您不会将任何值设置为NOT NULL列

如果您在INSERT上的非NULL列上提供值,则

NO 不再需要。

你可以参考这个

http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html