在mySQL字段创建中写入"不是null"的区别或好处...
例如,如果我要创建这样的表...
CREATE TABLE IF NOT EXISTS game(
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(128) NOT NULL,
description VARCHAR(200) NOT NULL,
PRIMARY KEY(id)
)
在这里,ID和名称始终具有一个值,因此它们的无效就可以了。我明白了。但是,描述是一个可选的字段,因此可以是空白的。
那么,在这种情况下,我不应该放无效吗?
null和空白字段不是同一回事(除非在某些情况下,您是脑死亡的DBMS 咳嗽 oracle oracle 咳嗽)。
null表示未知或不适用,而空白字段表示良好,已知和空白。
这完全取决于您要如何处理字段本身。例如,让我们考虑名称的中间字母。如果您不希望区分"未知"one_answers"没有一个",请将列设置为NOT NULL
,然后使用空白值表示两者 - 可以在某种程度上简化您的查询。
但是,如果您想邮寄所有客户没有中间名(出于任何奇异原因)而又不打扰那些不知道的人如果他们有一个,则需要能够区分在两个类之间。
首先,在您的情况下,如果您不将数据插入数据库,则实际上不必放入null,如果您不将数据插入,则不需要null但是,正如Paxdiablo前面提到的那样,它必须将值放置到该字段,该值并不意味着空白字段,因为空白字段可能是很多空间或一个空间。无论如何,如果不是必须在某个字段中具有值,那么您真的不必不将其放置。
我的意见是, NOT NULL
是针对那些具有依赖性的领域,例如主键,外键。
我以前在函数中工作的工作(a,b,c,d,e);如果没有输入外键值,它将执行,但返回无结果,并且自动increment值增加。这不是一个好习惯。如果使用NOT NULL
,当外键值为 NULL
时,将停止插入,则不会增加auto_increment值。
加法
要处理父记录删除,有一个级联操作,或者您可以将其手动更新为记录。