为什么MySQL将null更改为零?

时间:2010-12-03 14:02:05

标签: mysql null

我对数据库和SQL完全陌生 我有一个标有NOT NULL的列 当我在执行INSERT时忘记给该列赋值时,它会在该列中插入一个0值 有什么办法可以让它返回错误而不是将NULL更改为0吗?

3 个答案:

答案 0 :(得分:4)

您想查看SQL_MODE配置。它允许您定义MySQL处理此类事情的严格程度。默认情况下它非常宽松,这不是我通常想要的。它还取决于数据类型,特别是对于Dates,默认情况下它不是最佳的。

我个人经常去STRICT_ALL_TABLES

请参阅MySQL手册(5.0):

http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html

答案 1 :(得分:1)

有两个可能的原因:

  • 您为该列定义了默认值
  • 您的专栏为INT NOT NULL并将NULL投放到INT,结果为0

显然,第二种情况似乎就是这样。如果您想要获得错误,可以将SQL_MODE更改为严格。另一种可能性是在您的progam中进行输入验证,而不是将其留给SQL。

答案 2 :(得分:0)

我猜你有一个该列的DEFAULT值