我希望当我通过在mysql数据库中添加值的查询时,空值不应该传递我该怎么办?以及如何使用这些代码?请详细告诉我,我是全新的
答案 0 :(得分:4)
首先,将数据库中的列限制为NOT NULL
。这将防止存储无效数据。
然后,您需要考虑代码中不涉及NULL的数据表示。这可能会影响您表示默认值或未指定值的方式。
您可能会发现(作为副作用)您的代码变得更简单且更不容易出错,因为您不必担心代码中的解除引用NULL。因此,通常,消除数据库和代码中的NULL是一种很好的做法。
答案 1 :(得分:1)
添加没有NULL的记录的唯一方法是为每列指定值。
答案 2 :(得分:1)
如果在将null添加到数据库时想要出错,可以设置NOT NULL。
如果您不想要错误,也可以使用该字段的默认值,因此字段值将作为默认值,而不是null。
当您的表格处于编辑状态时 模式(在PhpMyAdmin中选择笔),
您可以设置字段的默认值
如果设置为非null,则可以取消选中 NULL复选框
答案 3 :(得分:0)
在您竭尽全力保持数据无效之前,请确保您确实不需要它们。空是表示未知值的最佳方式。但是,您必须编写期望空值的代码,这会驱使很多人离开。
对于null,使用默认值或绝对荒谬的值很诱人。然而,这经常会导致问题。关于有“NOPLATE”和“XXXXXXXX”这样的虚荣牌的人有轶事,因为票证编写者将使用这些值,其中NULL将是最佳选择。如果将票证数据放入计算机的人有办法在板号字段中放置NULL,则问题不会发生。 ...嘿,Devil的拥护者 - 字符串“NULL”与值NULL不同,所以你可以在一个完美的世界中拥有一个虚荣牌,“NULL”。 (我不会承担培训交通执法人员的责任,但是我会接受一份培训警察IT人员的合同,费用合适。:))
对于未知日期使用“荒谬”值(例如“1/1/1899”)并不常见,而不是允许空值。但是,这有两个问题。首先,用户会在某天实际需要该日期时震惊你。其次,你必须编写寻找“1/1/1899”的代码,当编写处理null的代码时,工作量相同,并且在语义上更正确。
对用例使用NOT NULL约束,“此值永远不会为null。无论主键描述什么,都必须始终具有此值。”避免使用NOT NULL约束将空值保留在数据库之外,以获得实际可能丢失或未知的值。
NULL非常有用。这是表示未知数据的最佳方式。