在 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 值存储为字符串,因为在需要时将它们转换为浮点数是一件简单的事情。
我的地理编码脚本有问题,它将空值插入 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 值存储为字符串,因为在需要时将它们转换为浮点数是一件简单的事情。