2015-04-03 428 views
0

我遇到了我的地理编码脚本存在问题,它将空值插入mySQL数据库并因为我的coord_lat column cannot be null而破坏我的脚本。当我看看我的结构时,它告诉我可以使用空值。任何人都可以给我一个关于如何解决这个问题的建议吗?谢谢!允许float在mySQL中为空值

enter image description here

enter image description here

+0

当你声明列时,删除'not null'。根据该屏幕截图,它已经不是空的 – 2015-04-03 16:54:32

+1

。 – 2015-04-03 16:57:15

+0

就是这样。它说不为null,但我的脚本告诉我coord_lat列不能为空,这很奇怪。 – chronotrigga 2015-04-03 16:59:17

回答

2

可以使用alter table修改列:

alter table modify coord_lat float not null; 

但是,列被宣布为not null明确的,所以我不知道这是否是一个好主意。我想更大的问题是为什么你插入一行没有这个信息。

+0

这不会破坏我现有的记录是否正确?只是想仔细检查,谢谢! – chronotrigga 2015-04-03 16:56:09

+1

它不会。但它不是一个可怕的习惯,以确保您有一个最近的备份之前作出任何修改 – 2015-04-03 16:56:56

+1

这与OP发布'当前计划'相矛盾..有些事情是错误的。 – user2864740 2015-04-03 17:06:36

1

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

+0

感谢您的帮助! – chronotrigga 2015-04-06 15:10:17

0

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

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

如果你只是离开了纬度和经度

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

然后lat和液化天然气将是0.00000

我通常纬度/经度值存储为一个字符串作为将它们转换为浮动是在需要时做一件简单的事情。