在 mySQL 中允许浮点数为空值

Allow floats to be null values in mySQL

我的地理编码脚本有问题,它将空值插入 mySQL 数据库并破坏了我的脚本,因为我的 coord_lat column cannot be null。当我查看我的结构时,它告诉我允许空值。谁能给我一个关于如何解决这个问题的建议?谢谢!

您可以使用 alter table 修改列:

alter table modify coord_lat float not null;

但是,该列已明确声明为 not null,所以我不知道这是否是个好主意。我想更大的问题是为什么要插入没有此信息的行。

检查是否有覆盖该列的索引,那些也可以强制列为非空。 (注意:可以是简单的或复合的。)

值得注意的是,您必须明确指定您希望该字段为空。 float 的默认值始终为 0.00(小数位数与字段一样多)。

INSERT into GEO (city,lat,lng) VALUES ('london',null,null);

如果您不考虑纬度和经度

INSERT into GEO (city) VALUES ('london');

那么 lat 和 lng 将为 0.00000

我通常将 lat/lng 值存储为字符串,因为在需要时将它们转换为浮点数是一件简单的事情。