2010-01-03 48 views
0

我希望当我通过在mysql数据库中添加值的查询时,空值不应该通过我应该做的事情?以及在哪里以及如何使用这些代码?请详细告诉我我完全是新来的停止传递给mysql的空值

回答

4

要下手,约束你列在数据库中是NOT NULL。这将防止无效数据被存储。

然后,你需要考虑你的代码的数据表示,不涉及空值。这可能会影响您如何表示默认或未指定的值。

您可能会发现(作为副作用),你的代码变得更简单,更不容易出错,因为你不必担心你的代码取消引用空值。因此,一般来说,从数据库中删除空值和你的代码是一种很好的习惯。

+0

这是很好的建议。数据约束应该在数据库的控制之下,而不是一些应用程序。那是因为你永远不知道什么时候会有错误的或恶意的应用程序进入并附加到你的宝贵数据。如果你不想停止这些应用程序,但仍然想阻止NULL,你可以选择插入/更新触发器来将NULL转换成其他的东西,但这是一个混乱。 – paxdiablo 2010-01-03 12:09:06

1

添加不带NULL的记录的唯一方法是为每列指定值。

+0

或者添加合理​​的默认值。 – duffymo 2010-01-03 12:36:51

1

如果您希望在向数据库中添加空值时发生错误,可以设置NOT NULL。

如果你还不想一个错误,你可以使用默认值,该字段,那么字段值将作为默认值,而不是空。


当你的表是编辑 模式(选择在phpMyAdmin笔),

  • 你可以设置一个字段的默认值,

  • 对于设置不为空,你可以取消-check NULL复选框

0

y为了保持数据不存在,请确保你不需要它们。空值是表示未知值的最佳方式。然而,你必须编写预计为空值的代码,并且驱使很多人离开。

人们很容易使用默认值,或绝对荒谬的价值,为空。但是,这经常会导致问题的发生。有趣的是,像“NOPLATE”和“XXXXXXXX”这样的虚拟平板电脑的人获得数百张其他车票,因为票务编写者会使用这些值,其中NULL是最好的选择。如果将票据数据放入计算机的人有办法在板号字段中放置NULL,则问题不会发生。 ...嘿,魔鬼的拥护者 - 字符串“NULL”与NULL值不同,所以你可以在完美的世界中有一个名为“NULL”的虚荣盘。 (我不会接受NULL培训交通执法官员的责任,但我会接受培训警察IT人员的合同,收取正确的费用:))

使用“荒谬”值并不罕见比如“1/1/1899”,表示未知日期,而不是允许空值。但是,这有两个问题。首先,用户会因某一天实际需要该日期而感到震惊。其次,当编写代码来处理null时,你必须编写查找“1/1/1899”的代码,这将是相同数量的工作,并且在语义上更加正确。

使用的情况下,使用NOT NULL约束“这个值可以永远,永远是空的。无论是通过主键描述必须始终有这个价值。”避免使用NOT NULL约束来将空值保留在数据库之外,以获得实际可能丢失或未知的值。

NULL可能很有用。这是表示未知数据的最佳方式。