我在wamp
中使用win 7
。
在我的数据库中,我有一个表be_users
,两个字段:username
和email
,两者都设置为NOT NULL
。
但为什么我仍然可以 insert
将空值和空值转换为字段:电子邮件,请参见下图:
答案 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
)。
我想你已经输入了别的东西。请再次检查表格结构并输入新数据。