我正在使用wamp
.win 7
在我的数据库中,我有一个表be_users
,两个字段:username
并且email
,它们都是 set NOT NULL
。
但是为什么我仍然可以将insert
值和空值清空到字段中:电子邮件,见下图:
我正在使用wamp
.win 7
在我的数据库中,我有一个表be_users
,两个字段:username
并且email
,它们都是 set NOT NULL
。
但是为什么我仍然可以将insert
值和空值清空到字段中:电子邮件,见下图:
实际上,您正在插入文本,而它们不是NULL
. 文本与NULLNULL
非常不同。如果该字段设置为 ,则永远不能违反规则。NOT NULL
尝试执行此语句,
INSERT INTO tableName VALUES (null, null) -- will fail
它肯定会失败,因为那些是NULL
。但是下面的这个语句肯定会起作用,因为你正在插入string
.
INSERT INTO tableName VALUES ('', 'null') -- will work
空值不等于 NULL,看起来您正在将“null”而不是 NULL 插入到数据库中,因此您最终得到的是字符串“null”而不是 NULL 值。
不要发送用引号“NULL”或“NULL”括起来的 NULL,它会被视为文本值。
问题是由于这两个字段使用的数据类型。“文本”您可以将其更改为 varchar(255) 以使用 NULL。NULL 和数据类型文本存在一些问题。
Null
是一个关键字。如果您直接输入 null ,那么它会显示错误。
例子-
insert into tablename(fieldname) values(null);
上面这行会产生错误(如果你提到过not null
)。
我认为您输入了其他内容。请再次检查表结构并输入新数据。