mysql中的NOT NULL问题

时间:2013-05-10 05:33:13

标签: mysql

enter image description here

我在wamp中使用win 7

在我的数据库中,我有一个表be_users,两个字段:usernameemail,两者都设置为NOT NULL

但为什么我仍然可以 insert 将空值和空值转换为字段:电子邮件,请参见下图: enter image description here

4 个答案:

答案 0 :(得分:0)

实际上,您正在插入文字,但它们不是NULL。文本NULL NULL 非常不同。如果字段设置为NOT NULL,则永远不会违反规则。

尝试执行此语句,

INSERT INTO tableName VALUES (null, null)  -- will fail

它肯定会失败,因为它们是NULL。但是下面的这个陈述肯定会有用,因为你插入的是string

INSERT INTO tableName VALUES ('', 'null')  -- will work

答案 1 :(得分:0)

空值不等于NULL,看起来你在数据库中插入'null'而不是NULL,所以你最后得到一个字符串'null'而不是NULL值。

答案 2 :(得分:0)

不要发送带引号'NULL'或“NULL”的NULL,将其视为文本值。

问题是由于用于两个字段的数据类型。 “text”您可以将其更改为varchar(255)以使用NULL。 NULL和数据类型文本存在一些问题。

答案 3 :(得分:0)

Null是一个关键字。如果你直接输入null,那么它会显示错误。

实施例 -

insert into tablename(fieldname) values(null); 

上述行会产生错误(如果您提到not null)。

我想你已经输入了别的东西。请再次检查表格结构并输入新数据。