我收到一条错误消息说
我突然意识到我忘记了set
default value
到我的一个实地电话note
。
我正在考虑如何解决这个问题:
default value
nullable
由于我对数据库世界很陌生,这是我的问题:
答案 0 :(得分:1)
•它们有什么不同吗?
SQL中的非NULL和NULL之间存在很大差异。没有性能优势,但有很多功能可以使用NULL值:ex。 IFNULL()
,NULLIF()
。对于某些其他功能,在某些情况下,这种行为可能是不可接受的。
无论哪种方式,我选择这样做,重要吗?它会影响到吗? 任何形式的表现?
不,它不会。选择您需要/想要的东西。在您的情况下,您应该为列提供默认值。你可以这样做:
ALTER TABLE TableName ALTER columnName SET DEFAULT 'your value';
!如果您的表已有数据,则需要在开始更改其结构之前制作副本
答案 1 :(得分:1)
我将自己的想法投入到这个问题中。对于类似注释部分的内容,可以将默认值设置为"None"
(例如)而不是NULL
。虽然它不会在性能方面做出很大的改变,但它会显示出明显的差异。根据您向用户显示此数据的方式,您是否希望您的笔记部分根本没有任何内容,或者您是否希望它说"没有提供"或什么都不显示?对于这种情况,这是个人偏好的问题。
我唯一建议的是在你的约定中保持一致。如果您在另一张桌子上有一个具有默认值的备注栏,并且这个栏目没有,那么它不一致,虽然可能没有害处,但可能会导致一些挫折/混乱。 / p>
最后,功能明智,确保您正在检查正确的事情。如果您->nullable()
并且不想显示NULL
结果,请使用WHERE table.note IS NOT NULL
。如果您提供默认值say "None"
并且不想显示这些值,则WHERE
将为WHERE table.note != "None"
。
希望能提供一些见解!
答案 2 :(得分:0)
性能没有变化。
这只取决于你的需求。
Defaut value =用户忘记填写字段时要设置的值。 例如"英语"适合作为默认语言,因为很多用户会选择这种语言。 "麦克"不适合作为默认名字,因为" Mike"不是每个人的默认名字。
NULL和NOT NULL =如果您不希望信息保持为空。 例如"移动电话"可以留空,因为你不需要那些信息。 "电子邮件地址"不能留空,因为你以后需要它发送电子邮件给那个人。