在MySQL中,整数字段的默认值为0。在插入期间,该字段的值为NULL,并且插入NULL。我使用该字段的值进行一些算术操作,如加法、多路编译、除法。这会导致错误,因为插入了NULL。如何解决这个问题?如果字段的插入值为null,则DB不支持integer、decimal等字段的默认值(可能不适用于字符串类型,因为NULL对于字符串有效)。如果不是,那么Numeric类型的空值是否正确?
由于某些原因,当我有一个十进制字段,且非空值和默认值为0时,插入失败,并显示错误消息"Data truncated For column 'Column_Name‘at row 1“。
如果我删除了NOT NULL属性,则插入成功后将显示警告消息。
插入到小数字段中的值是AVG() MySql函数的结果
真的一无所知..。
可能的原因是什么?
发布于 2009-09-21 08:54:01
对于任何mysql列/类型,NULL都是正确的值。
您可以将该列设置为NOT NULL,或者需要在脚本语言中解析它,这样就不会插入null。
发布于 2009-09-21 09:52:18
要插入默认值,您不必为列指定任何值,甚至不能指定NULL,因为NULL是一个特定值。
发布于 2009-09-21 08:54:40
您可以将字段设置为NOT NULL
,以完全避免此问题。如果NULL
值是不需要的,那么您就应该这样做。当列为NOT NULL
时,将插入该类型的默认值(0表示整数),而不是NULL
。
https://stackoverflow.com/questions/1453483
复制相似问题