MySQL默认值问题

Gop*_*opi 2 mysql null default-value

在 MySQL 中,整数字段的默认值为 0。在插入过程中,该字段的值为 NULL,并插入 NULL。我使用该字段的值进行一些算术操作,例如加法、乘法、除法。这会导致错误,因为插入了 NULL。如何解决这个问题?如果它们的插入值为空,数据库是否不支持整数、十进制(可能不适用于字符串类型,因为 NULL 对字符串有效)等字段的默认值。如果不是,那么为 Numeric 类型设置 NULL 值是否正确?

出于某种原因,当我有一个 NOT NULL 和 DEFAULT VALUE 为 0 的十进制字段时,插入失败并显示错误消息“第 1 行的列 'Column_Name' 的数据被截断”。

如果我删除 NOT NULL 属性,插入成功与警告相同的消息。

插入该十进制字段的值是 AVG() MySql 函数的结果

真是无语了……

可能是什么原因?

Res*_*uum 6

要插入默认值,您必须不为该列指定任何值,甚至不能指定 NULL,因为 NULL 是一个特定值。


dus*_*oft 5

NULL 是任何 mysql 列/类型的正确值。

您可以将列设置为 NOT NULL,或者您需要用脚本语言解析它,这样就不会插入 null。

  • 具有 NOT NULL 和默认值的字段不应引发错误,因为如果 NOT NULL 失败,我已经设置了默认值。它不应该尝试插入默认值吗? (2认同)